Расширения конфигурации. Полезные советы для разработки 1с расширение конфигурации добавить документ

Windows

Механизм расширения конфигурации – это специальный механизм, предназначенный для доработки расширяемой конфигурации без изменения этой конфигурации (в том числе без снятия с поддержки).

При рассмотрении механизма расширения конфигурации будут использоваться следующие термины:

  • Расширяемая конфигурация – основная конфигурация информационной базы, для которой применяется расширение или для которой расширение разрабатывается.
  • Расширение конфигурации – набор объектов конфигурации, подключаемых к расширяемой конфигурации и содержащий набор объектов, добавляемых к расширяемой конфигурации. Расширение может включать в себя как объекты расширяемой конфигурации, так и объекты, которые отсутствуют в расширяемой конфигурации.
  • Собственный объект – самодостаточный объект конфигурации, который может находиться как в расширяемой конфигурации, так и в расширении (отчет, обработка или подсистема).
  • Заимствованный объект – собственный объект, добавленный в расширение конфигурации.
  • Расширяемый объект – собственный объект, для которого в заимствованном объекте изменены какие-либо параметры (свойства, формы и т. д.).
  • Расширяющий объект – это заимствованный объект, в который внесены изменения относительно расширяемого объекта. Наличие в заимствованном объекте только контролируемых свойств не делает заимствованный объект расширяющим.
  • Результирующий объект – это собственный объект плюс объединение всех расширяющих объектов (если расширений несколько). Если для собственного объекта нет расширяющих объектов – он становится результирующим «без изменений». Т.е. в конфигурации, с которой работает пользователь – все объекты являются результирующими, вне зависимости от наличия и количества установленных расширений.
  • Расширяющее свойство – свойство заимствованного объекта, которое изменяет одноименное свойство расширяемого объекта.
  • Контролируемое свойство – свойство заимствованного объекта, значение которого проверяется при подключении расширения к расширяемой конфигурации. Если при подключении расширения (в режиме 1С:Предприятие) значение контролируемого свойства в расширении не совпадет со значением этого же свойства в расширяемой конфигурации, расширение не будет подключено.
  • Модифицируемое свойство – свойство заимствованного объекта, значение которого в результирующем объекте будет получаться из расширения.

Свойство заимствованного объекта не может быть одновременно контролируемым и модифицируемым.

Основное назначение расширения конфигурации – это доработка прикладного решения при внедрении (или в «облаке») под нужды клиента. При этом дорабатываемую конфигурацию не надо снимать с поддержки. В результате сохраняется простота обновления типового прикладного решения, стоящего на поддержке, с необходимостью выполнять доработки. При разработке расширения следует понимать некоторые особенности функционирования расширения конфигурации. Так, расширяемая конфигурация в любой момент может быть изменена, например, в результате обновления. При этом разработчик расширения не может никак повлиять на возможность или невозможность обновления. Также следует учитывать тот факт, что в системе могут функционировать более одного расширения и автор каждого расширения (в общем случае) не знает, как функционирует другое расширение.

Расширение создается в конфигураторе, хранится в информационной базе и может быть сохранено в файл. Для добавления (подключения) расширения, сохраненного в файл, в прикладное решение конкретного клиента нет необходимости использовать конфигуратор. Подключить расширение можно с помощью специальной стандартной функции (Все функции – Стандартные – Управление расширениями конфигурации). Подключить расширение также можно с помощью инструментария прикладного решения, которое использует программный интерфейс, предоставляемый платформой. Подключение расширения (интерактивно или из встроенного языка) возможно или в небезопасном режиме или в том случае, когда профиль безопасности, под управлением которого работает сеанс, разрешает доступ к подключаемому расширению.

В качестве расширяемых объектов могут выступать:

  • Управляемые формы;
  • Роли;
  • Подсистемы;
  • Настройки начальной страницы (рабочего стола) прикладного решения;
  • Общие модули;
  • Модули объектов для всех типов объектов;
  • Модули менеджеров для всех типов объектов;
  • Модуль сеанса;
  • Модуль управляемого приложения;
  • Модуль внешнего соединения;
  • Модули команд.

В качестве собственных объектов расширения могут выступать:

  • Подсистемы;
  • Обработки;
  • Отчеты;
  • Реквизиты, табличные части и реквизиты табличных частей в заимствованных обработках и отчетах;
  • Роли;
  • XDTO-пакеты;
  • Web-сервисы;
  • HTTP-сервисы;
  • WS-ссылки;
  • Общие макеты;
  • Общие команды;
  • Общие модули (кроме глобальных серверных и привилегированных общих модулей);
  • Группы команд;
  • Общие картинки;
  • Формы, макеты и команды заимствованных объектов:
  • Планов обмена;
  • Критерев отбора;
  • Хранилищ настроек;
  • Справочников;
  • Документов;
  • Журналов документов;
  • Перечислений;
  • Отчетов;
  • Обработок;
  • Регистров сведений;
  • Регистров накопления;
  • Регистров бухгалтерии;
  • Регистров расчета;
  • Планов видов характеристик;
  • Планов счетов;
  • Планов видов расчета;
  • Бизнес-процессов;
  • Задач;
  • Таблиц внешних источников данных;
  • Кубов внешних источников данных;
  • Таблиц измерений внешних источников данных.

Среди контролируемых свойств следует особо выделить:

  • Состав плана обмена;
  • Предопределенные элементы для справочников, планов видов характеристик, планов счетов и планов видов расчетов.

В базовых версиях прикладных решений работа с расширениями не поддерживается.

В редакторе модулей, при работе с расширяемой конфигурацией, реализована возможность добавления в расширение конкретного метода.
Реализована возможность перехода к расширяемому методу из аннотации расширяющего метода в редакторе модулей (при работе с расширением).
Для команды Добавить в расширение реализовано сочетание клавиш Alt+Shift+F2. Сочетание клавиш Alt+F2 для этой команды больше не используется.

Ранее отсутствовала удобная возможность добавления в расширение редактируемого метода.
Ранее отсутствовала возможность перехода к расширяемому методу из аннотации расширяющего метода.
Для того чтобы добавить какой-либо метод в расширение, необходимо поместить курсор в требуемый метод (включая строку с именем метода) и выбрать команду Добавить в расширение. Если при выполнении данной команды в конфигураторе открыто одно расширение, то именно это расширение будет использовано. Во всех остальных случаях будет предложен выбор из расширений, которые добавлены для данной информационной базы.

При выполнении команды Добавить в расширение происходит следующее:

· Если объект, из модуля которого добавляется метод, отсутствует в выбранном расширении – этот объект автоматически добавляется в расширение.

· Если расширяется метод из модуля, отличного от модуля формы:

● Разработчику предлагается выбрать аннотацию для метода (Перед, После или Вместо). При этом полужирным шрифтом выделяются те расширения метода, которые уже существуют в расширении.

● Если выбран существующий метод в расширении, то выполняется переход к этому методу. При этом возможна корректировка объявления метода, если оно стало отличаться от расширяемого метода.

● Если выбран несуществующий способ расширения, то будет создан новый метод в расширении, который будет предваряться соответствующей аннотацией.

● Для функций недоступны аннотации Перед и После.

● Для процедуры недоступно:

● Аннотация Вместо, если уже существуют методы с аннотациями Перед или После;

● Аннотация Перед/После, если уже существует метод с аннотацией Вместо.

· Если расширяется метод из модуля формы:

● Если расширяемый метод является обработчиком одного события или одной команды, то предлагается выбрать, каким образом выполнить расширение выбранного метода: как расширение для обработчика события/команды или как расширение обычного метода.

● Если расширяемый метод является обработчиком для нескольких событий или команд, то будет сформировано предупреждение о том, что данный метод не может быть расширен как обработчик события/команды, и он будет расширен только как обычный метод. Затем будет предложено выбрать способ расширения метода.

● Для обычного метода, не являющего обработчиком какого-либо события, будет выполнено расширение метода с использованием аннотаций.

Следует учитывать, что если расширяемый метод обрамлен инструкциями препроцессора, то эти инструкции не будут перенесены в расширение.

При проверке соответствия описания расширяемого метода и метода расширения проверяются следующие характеристики методов:

· Количество параметров и признак передачи параметров «по значению» (ключевое слово Знач).

· Метод является процедурой или функцией. Если определение метода изменяется с процедуры на функцию, а до этого процедура была расширена с применением аннотаций Перед/После, то аннотация будет заменена на аннотацию Вместо.

· Если в модуле расширения присутствуют несколько методов с одинаковым именем, но которые обрамлены разными инструкциями препроцессора, то в расширении будет обновляться всегда первый из перечня таких методов.

Еще одной особенностью редактирования программного модуля в расширении является то, что имеется возможность перехода к расширяемому методу непосредственно из расширения. Для этого следует поместить курсор на имя расширяемого метода в аннотации, а затем воспользоваться стандартной командой редактора Перейти к определению.

Для расширения конфигурации реализована возможность указывать назначение расширения конфигурации: Исправление , Адаптация и Дополнение .

Расширения подключаются в следующем порядке:

  • все расширения с назначением Исправление ;
  • все расширения с назначением Адаптация ;
  • все расширения с назначением Дополнение .

Порядок загрузки нескольких расширений с одинаковым значением назначения расширения не определен.

Расширениям, ранее загруженным в информационную базу, назначение расширения автоматически устанавливается в значение Адаптация .

Реализовано свойство РасширениеКонфигурации.Назначение .

В новом релизе платформы 8.3.11 очень существенно доработан механизм расширений конфигураций, по сути, он позволяет сделать новую конфигурацию поверх текущей, которая останется на поддержки, т.е. может спокойно обновляться. Об этих революционных изменениях в платформе 8.3.11 и будет моя статья.

На мой взгляд, самое главное новшество в механизме расширений конфигурации это возможность в расширении конфигурации создавать собственные объекты – документы, справочники, планы счетов обмена и регистры сведений. А так же возможность создавать у заимствованных документов и справочников собственные табличные части и реквизиты. Исследуем эти новые возможности, для реализации примеров, я буду использовать конфигурацию 1С .

У конфигурации должен стоять режим совместимости «Не использовать», так же как и у расширения.

Для этого создадим в конфигурации «Управляемое приложение» подсистему «Учет автомобилей» со следующими объектами

Справочники: Марки автомобилей, Автомобили, Гаражи

Документы: Прибытие в гараж, Выбытие из гаража.

Создадим новое расширение, которое назовем «Учет автомобилей», назначение этого расширения будет «Дополнение».

Добавим в новое расширение собственную картинку, в которую загрузим иконку автомобиля

Теперь создадим новую подсистему, которую назовем «Учет автомобилей», в этой подсистеме отметим флаг «Включать в командный интерфейс» и в свойстве «Картинка» укажем нашу новую иконку.

Создадим справочники: МаркиАвтомобилей, Автомобили (будет реквизит Марка с типом ссылка на справочник МаркиАвтомобилей) и Гаражи.

Создать новый справочник в расширении конфигурации легко, все делается точно так же как и в обычной конфигурации: выделяется ветка справочники, вызывается контекстное меню, в котором нужно кликнуть на пункт «Добавить»

Точно так же создадим новые документы: Прибытие автомобиля и Выбытие автомобиля.

Включим все наши новые объекты в подсистему.

Теперь запустим нашу конфигурацию и посмотрим на новую подсистему

Теперь попробуем в справочник расширяемой конфигурации добавить новый реквизит, причем тип этого реквизита будет из расширения. Сделаем следующую задачу: в справочник контрагент добавим новый реквизит с типом ссылка на справочник Автомобиль.

Для этого заимствуем справочник Контрагент в расширение.

Добавим для заимствованного справочника новый реквизит, который назовем Автомобиль.

И добавить на заимствованную форму реквизит расширения.

Теперь, если мы зайдем в справочник нашей конфигурации, то сможем заполнить этот реквизит из расширения.

Таким образом, можно прорезюмировать: платформа 8.3.11 дает принципиально новые возможности по доработкам конфигурации. По сути, теперь расширение конфигурации является самостоятельно полноценной конфигурацией, которая строиться поверх основной конфигурации. Будем следить дальше за развитием платформы 1С.

Изучайте основы конфигурирования в 1С и учитесь программировать в «1С: Предприятии» с помощью моих книг:

  • Закрепите полученные знания при помощи задачника;
  • Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

    1. Очень доступный и понятный язык изложения
    2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
    3. Поймете идеологию управляемого приложения 1С
    4. Узнаете, как разрабатывать управляемое приложение;
    5. Научитесь разрабатывать управляемые формы 1С;
    6. Сможете работать с основными и нужными элементами управляемых форм
    7. Программирование под управляемым приложением станет понятным

    Промо-код на скидку в 15% — 48PVXHeYu


    Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:

    можно оплатить вручную:

    Яндекс.Деньги — 410012882996301
    Web Money — R955262494655

    Вступайте в мои группы.

    Пользователи часто хотят изменить типовые решения под собственные нужды. Не всегда получается решить задачу, используя внешние обработки или отчеты и поэтому, приходится вносить изменения в типовые решения.

    Для типовых конфигураций периодически выходят обновления. Для того чтобы обновления выполнять в автоматическом режиме, необходимо чтобы конфигурация была на поддержке без изменений. Если разрешить изменения, то автоматическое обновление будет не доступно. И для того чтобы выполнить обновление вручную, необходимо будет обращаться к специалистам. Обновление измененных конфигураций может потребовать много времени, это зависит от количества внесенных изменений.

    Начиная с версии платформы 8.3.6 появился новый метод внесения изменений - "Расширения конфигурации". При использовании данного метода конфигурация не меняется, что позволяет сохранить возможность автоматического обновления. Расширения конфигураций создаются и редактируются в режиме конфигуратора. Для того чтобы открыть окно просмотра и редактирования расширений, необходимо перейти в главном меню: Конфигурация->Расширения конфигурации .


    Механизм расширений - это новая разработка, поэтому добавление изменений доступно не для всех объектов метаданных.
    Пример по добавлению .

    Для расширений доступны следующие действия:
    Добавление новых отчетов и обработок;
    Изменение и добавление управляемых форм;
    Добавление обычных форм;
    Доступно изменение командного интерфейса;
    Редактирование ролей;
    Добавление подсистем и изменение их состава;

    Для того чтобы объект был доступен для изменения его необходимо добавить в расширение. Для этого нужно в дереве метаданных выбрать объект и правой кнопкой мыши выбрать пункт "Добавить в расширение". После этого в дереве расширения создается элемент "Дублер". Например, при добавлении справочника "Номенклатура", в расширении появляется такой же справочник. Таким образом, существуют две версии одного и того же объекта. Одна версия в основной конфигурации, а другая в расширении. При работе пользователя с этим объектом в 1С:Предприятии, программа сопоставляет по имени версию из основной конфигурации и версию из расширения, а затем накладывает на объект из основной конфигурации, изменения из расширения. Если не удается сопоставить объекты, то появится сообщение об ошибке.

    Выгрузка и загрузка расширений

    Расширения можно выгружать в файл (*.cfe). Выгрузка доступна в конфигураторе и в предприятии. В режиме конфигуратора окно редактирования расширений открывается как показано выше. В режиме предприятия для загрузки, выгрузки, удаления расширений, используется специальная обработка, которая открывается через главное меню:
    Все функции->Стандартные->Управление расширениями конфигурации .


    Подробнее о переопределении процедур и функций можно прочитать в статье
    .

    Подробнее о том как добавить расширение в конфигурацию можно прочитать в статье

    В данной статье предлагаю рассмотреть, что такое «расширение конфигурации», как добавить расширение или же отключить его. Начиная с версии 1C 8.3.6.1977 в платформе введен новый механизм – расширения конфигурации. Сначала немного теории.

    Расширения представляют в 1С собой что-то вроде параллельных конфигураций, которые автоматически объединяются с основной конфигурацией поставщика. Причем в расширениях можно добавлять как свои объекты, так и заимствовать объекты основной конфигурации.

    Для чего нужны расширения?

    В первую очередь расширения созданы для облегчения внесения изменений в программу. То есть, если пользователи просят добавить какой-либо функционал, то до появления расширений программистам приходилось снимать конфигурацию с полной поддержки и менять типовую конфигурацию.

    Снятие с полной поддержки влечет за собой ряд неудобств:

    • пропадает возможность автоматического обновления, что приводит как минимум к увеличению времени на то, чтобы ;
    • требуется высокая квалификация специалиста, обслуживающего программу;
    • если изменения вносились в стандартные объекты типовой конфигурации, то при обновлении они могут пропасть, то есть замениться опять на типовые, от поставщика.

    При использовании расширений при внесении изменений программист не будет трогать типовую конфигурацию. Все изменения будут делаться при помощи расширений, которые (как я писал выше) тоже являются конфигурациями. Таким образом, основная конфигурация останется на полной поддержке.

    После обновления основной конфигурации, если произошли в новом релизе какие-то изменения с объектом, который ранее был изменен расширением, то изменения все равно возьмутся из расширения. То есть расширения имеют больший приоритет, чем основная конфигурация.

    Видео — расширения в 1С за 45 минут

    Получите 267 видеоуроков по 1С бесплатно:

    Пример добавления расширения в 1С

    Чтобы показать, что такое расширение, лучше привести пример его создания в конфигураторе 1С.

    В конфигураторе зайдем в меню «Конфигурация» и выберем пункт «Расширения конфигурации». Откроется окно со списком расширений (если они есть). Нажмем кнопку «Добавить» и добавим новое расширение. Теперь можно открыть конфигурацию расширения:

    Как видно, конфигурация расширения имеет точно такую же структуру, как и основная. Только она изначально совершенно чистая, без объектов.

    Недавно я писал статью о том, как самим сделать . На её примере я хочу сделать ее встроенной при помощи расширения.

    В обработке у меня есть поле со ссылкой на справочник «Организации». Поэтому мне этот справочник необходим. Но мы не будем создавать новый справочник «Организации», тем более что платформа этого и не позволит. Нельзя, чтобы в конфигурации расширения были объекты, одноименные с объектами в основной конфигурации.

    Поэтому справочник мы позаимствуем из основной конфигурации:

    Теперь нажмем правой кнопкой мышки на «Обработки» и выберем «Вставить внешнюю обработку, отчет…» Таким образом, добавим новую обработку в конфигурацию расширения. Если Вы используете мою обработку, то сразу переименуйте ее, так как в основной конфигурации уже есть обработка с таким именем.

    Ну и последний штрих. Я хочу, чтобы моя обработка отражалась в меню «Администрирование». Для этого позаимствуем одноименную подсистему основной конфигурации. Не забудьте указать в обработке, что она относится к этой подсистеме.

    Вот такая структура у меня получилась:

    Посмотрим, что у нас получилось. Обновляем конфигурацию базы данных и запускаем программу в режиме 1C: Предприятие, и идем в меню «Администрирование». Да, чуть не забыл, конфигурацию расширения необходимо закрыть, иначе программа не запустится: