Мотивом для появления данного исследования послужила твёрдая уверенность автора в том, что потоковая обработка данных в режиме реального времени является наиболее актуальной и востребованной задачей на сегодняшний день.
Данное требование заставляет искать наиболее эффективные способы организации потока данных, генерируемого в режиме реального времени или по возможности максимально близко к этому, на основании тех изменений, которые происходят в базах данных.
Предварительные результаты исследования механизма истории данных 1С:Предприятие 8 свидетельствуют о том, что данный механизм может быть перспективным кандидатом для решения выше обозначенных задач.
История изменения конфигурации фиксируется для каждого объекта метаданных, для которого включено использование этого механизма. Запись версий выполняется в таблицу DataHistoryMetadata.
Изменение данных прикладных объектов захватывается и фиксируется в таблице DataHistoryQueue0. Фиксация выполняется в основной транзакции записи объекта перед самым её завершением после записи в таблицы регистрации изменений планов обмена.
Таблица DataHistoryQueue0 играет роль классической таблицы-очереди, для которой разрешено только добавление записей, что исключает возможность возникновения каких бы то ни было блокировок. Это делает её практически идеальным кандидатом для организации потоковой интеграции или обработки данных.
Следует отметить, что каждая запись объекта порождает новую версию данных в этой таблице независимо от того изменились они или нет. Однако проблему дублирования данных можно решить при помощи поля DataId, выполняя по нему группировку (сжатие потока данных).
Захваченные механизмом данные кодируются в собственном бинарном формате и сохраняются в поле Content соответствующих таблиц DataHistoryMetadata и DataHistoryQueue0. Далее приводится пример кодирования в этом формате для простого справочника "ИсторияДанных", который использовался для проведения исследования. Надо сказать, что формат кодирования вполне доступен для понимания и создания практичных алгоритмов его обработки.
|
Тег |
Вступайте в нашу телеграмм-группу Инфостарт история данных интеграция обмен данными Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».
См. такжеМеханизмы платформы 1С Программист Бесплатно (free) Разберем 15 мифов о работе платформы «1С:Предприятие 8» – как распространенных, так и малоизвестных. Начнем с классики: «Код, написанный в одну строку, работает быстрее, чем многострочный». Так ли это на самом деле? 16.07.2025 41913 TitanLuchs 109 Работа с интерфейсом WEB-интеграция Механизмы платформы 1С Бесплатно (free) Веб-интерфейсы повышают качество внешнего вида приложений 1С, предсказуемы с точки зрения верстки, позволяют организовать удобные и высокопроизводительные рабочие места для пользователей. Расскажем об особенностях разработки веб-интерфейсов на React внутри 1С, двустороннем взаимодействии 1С и JavaScript, а также сборке веб-приложения в одностраничный файл. 19.06.2025 15685 zeegin 15 Механизмы платформы 1С Работа с интерфейсом Программист Стажер 1С:Предприятие 8 Бесплатно (free) Про ООП в 1С и о том, как сделать свой код более кратким и выразительным при помощи использования текучего интерфейса (fluent interface). 03.02.2025 23728 bayselonarrend 127 Механизмы платформы 1С Программист 1С:Предприятие 8 Бесплатно (free) В этой статье подробно рассматривается работа с JSON в XDTO в 1С:Предприятие. Вы узнаете, как сериализовать и десериализовать объекты XDTO в JSON, интегрировать 1С с веб-сервисами и API, а также корректно обрабатывать данные при обмене. Разбираются особенности работы с коллекциями, использование функций восстановления и частые ошибки при работе с JSON и XDTO. 30.01.2025 29859 user2122906 10 Механизмы платформы 1С Файловый обмен (TXT, XML, DBF), FTP Программист 1С:Предприятие 8 Бесплатно (free) Этот материал познакомит вас с механизмом XDTO (XML Data Transfer Objects) в 1С и научит эффективно использовать его возможности. Мы разберёмся, как работать с XML-схемами, создавать модели данных, манипулировать объектами XDTO, а также сериализовать и десериализовать их в XML. Вы узнаете, как использовать XDTO для интеграции с внешними системами, избегать типичных ошибок и оптимизировать код. К концу вы будете уверенно применять XDTO для решения сложных задач обмена данными и автоматизации процессов. 17.01.2025 49988 user2122906 12 Механизмы платформы 1С WEB-интеграция Программист 1С:Предприятие 8 Бесплатно (free) В платформе 8.3.27 появилась возможность использовать WebSocket-клиент. Давайте посмотрим, как это все устроено и чем оно нам полезно. 14.01.2025 42739 dsdred 108 Механизмы платформы 1С Программист 1С:Предприятие 8 Бесплатно (free) Особенности "Знач" и разбор документации к нему. 10.01.2025 24048 VAAngelov 59 Механизмы платформы 1С Программист Стажер 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free) Эта небольшая статья - некоторого рода шпаргалка по файловым потокам: как и зачем с ними работать, какие преимущества это дает. 23.06.2024 37443 bayselonarrend 22 Комментарии
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Я так думаю, что в производительности сериализации данных объектов. Обычно в регистры сведений сериализуют объект в формате JSON. Бинарная сериализация истории данных, судя по всему, гораздо компактнее и быстрее будет.
Более того, в регистры сведений пишут обычно через подписки на события, делают свои подсистемы и прочие обвесы, что не добавляет лёгкости таким механизмам. Кроме этого работа с регистром сведений выполняется через объекты типа "НаборЗаписей", а, следовательно, через виртуальную машину выполнения байт-кода 1С, что тоже само по себе не супер оптимально, по крайней мере в сравнении с платформенной сериализацией на C++. Нужны конечно же замеры и прочие доказательства в объективной форме. Не делал, пока что всё на уровне интуиции и собственного практического опыта реализации аналогичных решений ¯\_(ツ)_/¯
(1)
Выигрыш колоссальный, во первых история данных хранит только изменения, отсюда размеры таблицы меньше в разы, во вторых можно накладывать отборы при поиске. У меня значительная часть механизмов на этом построена. Письма партнерам об изменениях в заказах уже 3 года формируются автоматом. Обмен в разы уменьшился за счет регистрации только нужных изменений, которые в свою очередь построены на истории данных
(5)
(5) изменениях в заказах уже 3 года формируются автоматом.
Обмен в разы уменьшился за счет регистрации только нужных изменений, которые в свою очередь построены на истории данных Про регистрацию интересно. Поделитесь подробностями? А как поступаете, если все-таки нужно принудительно зарегистрировать что-то?
(7)
. Поделитесь подробностями? А как поступаете, если все-таки нужно принудительно зарегистрировать что-то?
Все просто по истории данных я учитываю что изменено через обработку после записи истории. Если нужно продублировать что либо, то всегда есть кнопка отправить все заново. Но я ей минимум год уже не пользуюсь
(2) Удаление из таблицы-очереди рано или поздно всегда есть =) Имеется ввиду , без UPDATE. Кроме этого в данной статье я не рассматриваю перемещение истории из таблицы DataHistoryQueue0 в таблицу DataHistoryVersions. Считаю эту манипуляцую на высоко нагруженных базах лишней - историю лучше выносить во внешние базы.
Автор:
Подписаться
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора. Публикация:
№ 1916860 Создание 14.08.23 09:00 Обновление 15.03.24 16:55 Статистика:
Просмотры 8872 Загрузки 0
Рейтинг
25 Комментарии 13 Характеристики:
Код открыт Да Рубрики Механизмы платформы 1С Кому Программист Тип файла Нет файла Платформа 1С:Предприятие 8 Конфигурация Универсальные Операционная система Не имеет значения Страна Не имеет значения Отрасль Не имеет значения Налоги Не имеет значения Вид учета Не имеет значения Доступ к файлу Бесплатно (free) |
|---|