Каждый разработчик, работающий в экосистеме 1С:Предприятие, ежедневно сталкивается с механизмами, которые определяют мощь и гибкость этой платформы. Два столпа, на которых держится современная разработка сложных отчетов и интеграционных решений, — это Система компоновки данных (СКД) и конфигурация Конвертация данных (КД). Эти инструменты настолько монументальны, что у многих программистов возникает закономерный вопрос: неужели это плод работы отдельных гениальных разработчиков или результат коллективного труда огромного корпоративного отдела? В этой статье мы подробно разберем историю создания этих механизмов, назовем имена их авторов, проанализируем официальные патенты и проследим эволюцию технологий от истоков до наших дней.
Для многих разработчиков СКД представляется сложнейшим «черным ящиком», который самостоятельно трансформирует декларативные настройки пользователя в оптимальные SQL-запросы, управляет компоновкой макетов, рассчитывает итоги по сложным иерархическим группировкам и выводит данные в любые форматы. Написать подобный механизм силами обычных программистов «с нуля» — задача колоссальной сложности.
Выясним, кто же стоит за созданием этой технологии. Начнем с официальных юридических документов. Система компоновки данных — это не просто внутренний код платформы, а официально запатентованное изобретение. Зарегистрирован патент под названием «Способ для автоматизированного создания отчетов» (номер патента RU 2536390).
Авторами этого патента официально значатся два человека:
Максим Лейбович — фигура в сообществе 1С поистине легендарная. Именно он спроектировал и воплотил в жизнь важнейшие механизмы платформы 1С:Предприятие 8. К его ключевым разработкам относятся:
Конструктор запросов, который позволяет быстро собирать сложнейшие конструкции с временными таблицами, связями и объединениями.Построитель отчетов — непосредственный исторический предшественник СКД, появившийся в ранних версиях «восьмерки» и ставший промежуточным шагом к новой парадигме отчетности.Система компоновки данных.Рассмотрим подробнее, как развивалась эта идея. До появления версии 8.2 и концепции управляемых форм разработчикам приходилось вручную программировать логику вывода отчетов. Построитель отчетов частично автоматизировал этот процесс, однако он жестко зависел от двумерной сетки вывода и требовал написания кода для инициализации. Максим Лейбович развил эту идею до полноценной декларативной системы, где описание данных (запросы, связи, роли полей) полностью отделено от визуализации (настроек компоновки). В результате платформа получила мощный процессор вывода, работающий на уровне метаданных, способный самостоятельно оптимизировать запросы к СУБД в зависимости от выбранных пользователем полей.
Конкретные задачи по развитию смежных платформенных механизмов (например, оптимизация производительности запросов, сериализация схем в XML, интеграция с динамическими списками) решались другими высококлассными специалистами технологического отдела «1С», такими как Владимир Филиппов и Дмитрий Русанов. Тем не менее, идейным вдохновителем, конструктором ядра и главным архитектором СКД остается Максим Лейбович.
Если СКД — это неотъемлемая часть самой платформы, написанная на C++, то конфигурация Конвертация данных — это прикладное решение (база данных на встроенном языке 1С), созданное для генерации правил обмена между различными информационными системами.
У истоков этого сложнейшего инструмента стоял один человек — Михаил Харитонов. Он руководил направлением интеграции прикладных решений компании «1С» в период с 2000 по 2004 год. Именно под его авторством вышли первые версии программного продукта, который перевернул представление об интеграции систем:
1С:Предприятие 7.7. Она позволяла сопоставлять метаданные различных конфигураций и выгружать данные в XML по строгим правилам.1С:Предприятие 8.0. Архитектурные принципы этой версии (использование уникальных идентификаторов, ПКО, ПКС, ПГКС и гибкая система событийных обработчиков на встроенном языке) оказались настолько жизнеспособными, что редакция 2.1 до сих пор активно применяется на тысячах предприятий для настройки обменов.Помимо Конвертации данных, Михаил Харитонов разработал множество других утилит и стандартов, которыми программисты пользуются до сих пор:
CommerceML 2.Проанализируем архитектурную гениальность КД 2.0. Михаил Харитонов предложил концепцию, при которой правила обмена описываются декларативно в виде специального XML-файла, но внутри каждого правила разработчик может написать код на встроенном языке 1С в точках-обработчиках событий (например, ПередВыгрузкой, ПриВыгрузке, ПослеЗагрузки). Платформа динамически компилирует эти куски кода при выполнении обмена через обработку УниверсальныйОбменДаннымиXML. Посмотрим на классический пример такого обработчика:
// Пример обработчика "Перед выгрузкой" в правилах конвертации объектов (ПКО)
Если Источник.ПометкаУдаления Тогда
Отказ = Истина; // Отменяем выгрузку помеченных на удаление элементов
КонецЕсли;
После ухода из фирмы «1С» Михаил Харитонов основал собственную компанию «2iS» (Интегрируемые Информационные Системы), где продолжил развивать технологии интеграции, а также проявил себя в творческой сфере как композитор и лидер рок-группы.
Время не стоит на месте, и классический подход Конвертации данных 2.1, ориентированный на прямое сопоставление метаданных «Источник — Приемник», при росте количества баз стал приводить к лавинообразному увеличению трудозатрат. Если у вас есть 5 различных конфигураций, для их попарного обмена по старой технологии требовалось написать и поддерживать до 20 различных файлов правил обмена.
Для решения этой проблемы архитекторы фирмы «1С» разработали принципиально новый подход, который лег в основу «Конвертации данных» редакции 3.0 (выпущена в конце 2014 года).
Разберем ключевые отличия этой технологии:
EnterpriseData, разработанного на основе XML-схем XDTO (XML Data Transfer Objects).EnterpriseData. Если у вас 5 баз, вам нужно настроить всего 5 правил интеграции с форматом, а не 20 между собой.Современным идеологом, методистом и ведущим разработчиком этого направления стал **Дмитрий Гончаров**. Он является автором официальных методических пособий и преподавателем курсов Учебного центра «1С», по которым сегодня обучаются тысячи специалистов, осваивая тонкости работы с XDTO-пакетами и механизмами КД 3.0/3.1.
Создание таких инструментов, как СКД и Конвертация данных, доказывает, что прорывные IT-решения часто рождаются на стыке личной гениальности отдельных разработчиков и системного подхода крупной компании. Максим Лейбович подарил сообществу невероятно мощный математический и логический аппарат для работы с отчетностью, а Михаил Харитонов заложил фундамент современной интеграции систем. Развиваясь и трансформируясь под руководством новых поколений архитекторов (таких как Дмитрий Гончаров), эти технологии продолжают оставаться визитной карточкой платформы 1С:Предприятие, облегчая жизнь миллионам пользователей и разработчиков.