Механизм расширений в платформе 1С:Предприятие 8.3 прошел долгий путь эволюции. Если на ранних этапах расширения предназначались исключительно для корректировки интерфейса или перехвата процедур и функций, то со временем они превратились в мощный инструмент, позволяющий полноценно дорабатывать логику систем без изменения основной конфигурации. Одним из самых долгожданных этапов развития стала возможность изменять структуру базы данных: добавлять собственные справочники, документы и регистры.
В этой статье мы подробно разберем, в каких именно версиях платформы появлялись те или иные возможности, и проанализируем технические нюансы, которые необходимо учитывать при работе с расширениями данных.
До версии 8.3.11 расширения были «бесплодными» — они не могли хранить собственные данные в базе. Все, что мог сделать разработчик, — это добавить программный код или изменить визуальное представление существующих объектов. Однако с выходом релиза 8.3.11.2867 ситуация кардинально изменилась.
В этой версии была реализована первая очередь механизма расширения данных. Рассмотрим подробнее, что стало доступно:
Справочники, которые физически создают новые таблицы в базе данных СУБД.Важно понимать, что на данном этапе существовало серьезное ограничение: в расширениях еще нельзя было создавать собственные регистры. Это делало невозможным полноценное построение учетных механизмов, так как данные справочников и документов негде было аккумулировать для отчетности.
Следующим важным шагом стал выпуск версии 8.3.12. В ней разработчики платформы расширили список доступных объектов метаданных, добавив РегистрыСведений. Это позволило:
Несмотря на этот прогресс, задачи оперативного и бухгалтерского учета все еще оставались «за бортом» расширений, так как регистры накопления и бухгалтерии по-прежнему были недоступны.
Версия 8.3.13 стала настоящим подарком для разработчиков сложных учетных систем. Именно в этом релизе была реализована поддержка ключевых объектов для автоматизации бизнеса:
Проанализируем ситуацию: начиная с 8.3.13, расширение стало полноценной «микро-конфигурацией», способной решать практически любые прикладные задачи. Однако оставались специфические области, такие как расчет заработной платы и интеграция с внешними ИТ-системами.
Для тех, кто занимается автоматизацией сложных расчетов (например, начисления зарплаты или аренды), критически важным стал выход версии 8.3.14. В ней была добавлена поддержка:
РегистрыРасчетаПланыВидовРасчетаА в версии 8.3.15 решилась проблема, на которую часто жаловались специалисты по интеграции (как упомянуто в сообщении 14 на форуме). Платформа позволила добавлять в расширения ВнешниеИсточникиДанных. Теперь подключение к внешним SQL-базам или другим источникам можно было реализовать максимально чисто, не затрагивая ядро системы.
Просто знать версию платформы недостаточно. Для того чтобы изменение структуры данных заработало, необходимо правильно настроить само расширение. Разберем ключевой параметр Назначение.
В палитре свойств расширения есть поле Назначение, которое может принимать следующие значения:
Также стоит учитывать вопрос хранения данных в СУБД. Выясним причину, по которой к работе с данными в расширениях нужно относиться осторожно: все новые таблицы в базе данных создаются с использованием специальных префиксов. Если вы удалите расширение из базы, все данные, накопленные в его объектах, будут безвозвратно удалены вместе с таблицами расширения. Поэтому перед удалением или критическим обновлением расширения всегда необходимо делать резервную копию базы.
Если перед вами стоит задача выбрать минимальный номер релиза для стабильной работы, проанализируйте следующие выводы:
Рассмотрим пример того, как система определяет уникальность объектов. При добавлении своего реквизита к заимствованному справочнику Номенклатура, в расширении он будет выглядеть как ИмяРасширения_ИмяРеквизита. Это позволяет избегать конфликтов имен при установке нескольких расширений от разных вендоров в одну базу.
Таким образом, современная платформа 1С предоставляет практически неограниченные возможности по модификации структуры данных через расширения, главное — четко соотносить ваши требования к объектам метаданных с возможностями конкретной версии платформы, установленной у заказчика.