Top.Mail.Ru

Эволюция расширений в 1С:Предприятие 8.3

Всем привет! Решил написать краткий обзор того, как развивались расширения с момента их создания. Оказывается, назначения (Адаптация, Исправление и Дополнение) появились аж в 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. Внутри - продвинутые статьи, видео, материалы для скачивания, закрытый чат для резидентов и возможность влиять на контент.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *