Всем привет! Решил написать краткий обзор того, как развивались расширения с момента их создания. Оказывается, назначения (Адаптация, Исправление и Дополнение) появились аж в 2017 году, а любимая мной аннотация &ИзменениеИКонтроль - аж в 2019 году. Об этом, и о других значимых вехах в развитии механизма расширений мы сегодня и поговорим!
Каждый разработчик 1С со стажем помнит времена, когда любая, даже самая незначительная доработка типовой конфигурации начиналась со снятия её с поддержки (пусть и с сохранением возможности обновления). Это усложняло последующее сопровождение, превращая каждое обновление в многочасовой (а порой и многодневный) процесс сравнения и объединения.
В 2015 году фирма «1С» представила механизм расширений конфигурации. Поначалу многие отнеслись к нему скептически — возможности были крайне ограниченными. Однако за прошедшие годы этот механизм прошёл путь от простейшего инструмента кастомизации форм до мощной среды проектирования полноценных подсистем.
Давайте детально разберем хронологию развития этого механизма и посмотрим, как менялся наш подход к разработке на платформе 1С:Предприятие 8.3.
Эпоха 1. Становление и косметические правки (2015–2016 гг.)
Первые версии расширений решали только одну задачу — дать возможность быстро поправить интерфейс или добавить простой отчет, не затрагивая структуру основной конфигурации.
Платформа 8.3.6.1977 (29.04.2015) — Рождение механизма
Появление механизма расширений. На этом этапе разработчикам разрешили:
Изменять существующие формы и командный интерфейс.
Добавлять собственные отчеты и обработки.
Работать с подсистемами и ролями.
В чем была практическая польза: Появилась легальная возможность кастомизировать интерфейс под конкретного пользователя или отдел без изменения типовой конфигурации. Но работать с бизнес-логикой и тем более данными на этом этапе было практически невозможно.
Платформа 8.3.7.1759 (19.11.2015) — Шаг навстречу интеграции
Расширения начали выходить за рамки простой визуальной настройки:
Реализована поддержка Web-сервисов, HTTP-сервисов, WS-ссылок и XDTO-пакетов.
Появилась возможность заимствовать предопределенные элементы.
В чем была практическая польза: Расширения стали применять для интеграционных задач. Теперь можно было развернуть API поверх типовой базы, вообще не меняя основную конфигурацию.
Платформа 8.3.8.1652 (20.04.2016) — Подготовка инфраструктуры
Этот релиз заложил программную базу под управление расширениями:
Во встроенном языке появились свойства и методы для работы с расширениями (РасширениеКонфигурации(), РежимСовместимостиРасширенияКонфигурации и др.).
Добавлена поддержка общих команд, макетов, картинок.
Эпоха 2. Программная логика и структурирование (2016–2017 гг.)
Когда разработчики поняли, что интерфейсные доработки работают стабильно, возникла потребность переносить в расширения логику проведения документов и алгоритмы расчетов.
Платформа 8.3.9.1818 (30.09.2016) — Перехват бизнес-логики
Один из переломных моментов. Платформа научилась:
Заимствовать и переопределять программные модули (объектов, менеджеров, форм, общих модулей).
Работать с ролями и правами доступа на более глубоком уровне (включая создание собственных ролей в расширении и использование ограничений доступа RLS).
В чем была практическая польза: Именно с этого релиза расширения перестали быть просто «косметикой» для форм и стали реальным инструментом кастомизации бизнес-процессов.
Платформа 8.3.10.2252 (27.04.2017) — Наведение порядка и типизация
С ростом популярности механизма базы данных стали наполняться десятками разнородных расширений. Для управления этим хаосом разработчики получили:
Разделение расширений по назначениям: Исправление (Patch), Адаптация и Дополнение. Это позволило платформе выстроить четкий приоритет их применения.
Инструменты навигации в конфигураторе между расширяемым кодом в основной конфигурации и расширяющим в модуле расширения.
Эпоха 3. Собственная модель данных (2017–2018 гг.)
Долгое время главным ограничением расширений оставалось табу на создание собственных таблиц в базе данных. Если нужно было добавить новый справочник или регистр — приходилось снимать конфигурацию с поддержки. И лишь в конце 2017 года этот барьер пал - нам дали возможность в расширениях добавлять свои прикладные объекты!
Платформа 8.3.11.2867 (21.11.2017) — Полноценные объекты метаданных
Этот релиз кардинально изменил ландшафт разработки:
Разрешено создавать собственные прикладные объекты: справочники, документы, регистры сведений, планы обмена.
Появилась возможность добавлять новые реквизиты и табличные части в заимствованные объекты основной конфигурации.
В чем была практическая польза: Расширение превратилось в самостоятельную экосистему. Теперь крупный функциональный блок (например, модуль интеграции со службой доставки или собственная система KPI) можно было написать целиком внутри расширения, создавая собственные таблицы БД.
Платформа 8.3.12.1412 (10.04.2018) — Управление в облаках и Хранилище
Расширения получили поддержку перечислений и истории данных.
Реализовано управление областью действия и активностью расширений (критично для разделенных баз в SaaS-решениях).
Добавлена поддержка Хранилища конфигурации для расширений, что упростило командную разработку.
Платформа 8.3.13.1513 (25.09.2018) — Закрытие пробелов в учете
Платформа расширила прикладную модель данных практически до максимума:
Появилась поддержка планов счетов, планов видов характеристик (ПВХ), планов видов расчета, а также регистров накопления, бухгалтерии и расчета.
Появилась возможность расширять свойства самой конфигурации (логотипы, заставки, стили).
Эпоха 4. Стабилизация и упрощение обновлений (2019 гг.)
Когда в расширениях стали хранить большие объемы данных, остро встал вопрос стабильности. При обновлении основной конфигурации переименование или удаление заимствованных объектов часто приводило к критическим ошибкам. Разработчикам требовались более надежные инструменты контроля совместимости.
Платформа 8.3.14.1565 (31.01.2019) — Смягчение проверок
Оптимизированы механизмы заимствования форм.
Реализованы собственные параметры сеанса в расширении.
Смягчен ряд строгих проверок совместимости, что уменьшило частоту падения расширений при незначительных изменениях в основной конфигурации.
Платформа 8.3.15.1489 (26.06.2019) — Революция в обновлении кода
Релиз принес два важнейших инструмента, которые сегодня используются ежедневно:
Сопоставление по внутренним идентификаторам (GUID): переименование объекта в основной конфигурации перестало ломать расширение, так как связь сохранялась на уровне GUID.
Аннотация &ИзменениеИКонтроль и директивы Вставка/Удаление: это позволило точечно менять участки кода внутри процедур основной конфигурации, контролируя актуальность остального текста модуля при обновлениях.
Платформа 8.3.16.1030 (07.11.2019) — Шлифовка UI
Возможность создавать и изменять формы, команды и макеты практически для всех типов прикладных объектов.
Визуальное выделение измененных свойств элементов в редакторе форм расширения, что облегчило аудит изменений.
Эпоха 5. Глубокая интеграция и зрелость (2021–2024 гг.)
К началу этой эпохи расширения стали стандартом разработки. Дальнейшие изменения были направлены на устранение оставшихся «белых пятен» в метаданных и оптимизацию повседневной работы разработчиков.
Платформа 8.3.20.1549 (05.10.2021) — Сложные типы данных
Возможность создавать и расширять определяемые типы (например, расширять типы документов, входящих в определяемый тип для бизнес-процессов).
Поддержка перекрестных ссылок: использование в одном расширении ссылочных типов, созданных в другом расширении.
Предопределенные элементы в собственных справочниках расширения.
Платформа 8.3.21.1302 (26.04.2022) — Поддержка SaaS и разделения данных
Возможность создавать собственные предопределенные элементы в заимствованных объектах.
Поддержка механизмов разделения данных: собственные объекты расширений теперь можно беспрепятственно включать в общие реквизиты-разделители.
Платформа 8.3.23.1688 (27.04.2023) — Комфорт разработки
Умный Конструктор запросов: открывая конструктор запросов в расширении, разработчик теперь может использовать таблицы основной конфигурации, которые еще не заимствованы. Платформа сама предложит добавить их в расширение при сохранении запроса.
Собственные регламентные задания в расширениях. Оооо дааа! 23 релиз подарил нам радость создания собственных регламентных заданий, и теперь не обязательно использовать БСП-шные дополнительные отчеты и обработки с расписанием.
Платформа 8.3.25.1257 (22.04.2024) — Бизнес-процессы и связи
Полноценная поддержка бизнес-процессов и задач (создание собственных, заимствование, изменение карт маршрутов).
Расширение работы с критериями отбора и связями между «родными» объектами и объектами расширения.
Платформа 8.3.26.1498 (28.11.2024) — Финальные штрихи
Поддержка журналов документов в расширениях.
Очередное расширение возможностей работы с XDTO-пакетами и Web-сервисами.
Заключение
Вот такой вот получился обзор эволюции расширений в 1С 8.3. И это далеко не финал! Платформа развивается и улучшается, и механизм расширений - вместе с ней. В Зазеркалье нам регулярно анонсируют новые плюшки - webSocket, система Взаимодействия, боты... в общем, скучно не будет, запасаемся терпением!
Чувствуете, что застряли в основах 1С?
Информация в интернете кажется обрывочной, а на решение простых задач уходят часы? Вы не одиноки. Я запустил Клуб для 1С разработчиков Alexcode.PRO. Внутри - продвинутые статьи, видео, материалы для скачивания, закрытый чат для резидентов и возможность влиять на контент.
