Профессия — 1С

Рукопашный бой Карташ

Категории

Расширения конфигурации

рубрики: Платформа 8.3 | Дата: 1 Май, 2018

Начиная с редакции 8.3.6 платформы 1С:Предприятия в ней появился механизм расширения конфигураций.




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

Новые возможности

  • Доработка типовых конфигураций, которые находятся полностью на поддержке. При этом значительно облегчается процесс обновления таких конфигураций.
  • Возможность оперативного исправления ошибок не дожидаясь выпуска релиза.
  • При использовании механизма УРБД есть возможность реализовать специфический функционал для какой-либо из периферийных баз.
  • Есть возможность работы с расширениями в режиме 1С:Предприятия. То есть можно сохранить расширение в файл, отправить заказчику, а он сможет загрузить его в режиме предприятия без использования конфигуратора. Для этого в меню выбираем Все функции и в ветке Стандартные пункт Управление расширениями конфигурации

Ограничения

Конечно есть и ограничения:

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

Пример использования

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




И в нем простейшая процедура, которая выводит сообщение:


Процедура ВывестиСообщение() Экспорт

	Сообщение = Новый СообщениеПользователю;
	Сообщение.Текст = "Это основная конфигурация";
	Сообщение.Сообщить();

КонецПроцедуры

А теперь давайте выведем другое сообщение с помощью расширения. В первую очередь нам конечно же надо создать само расширение. В меню конфигуратора выбираем Конфигурация — Расширение конфигурации

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

Далее в списке расширений убираем флажки «Безопасный режим, имя профиля безопасности» и «Защита от опасных действий»:

Таким образом мы создали расширение. Но если мы откроем его двойным щелчком, то увидим, что дерево метаданных у него пустое. И теперь нам надо добавить в расширение общий модуль.




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

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

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

В итоге в общий модуль расширения будет добавлена процедура со следующим кодом:


&Вместо("ВывестиСообщение")
Процедура Сообщения_ВывестиСообщение()
	// Вставить содержимое метода.
	ПродолжитьВызов();
КонецПроцедуры

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





&Вместо("ВывестиСообщение")
Процедура Сообщения_ВывестиСообщение_()

	Сообщение = Новый СообщениеПользователю;
	Сообщение.Текст = "Это расширение";
	Сообщение.Сообщить();

КонецПроцедуры

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


professia1c_ry_Расширения.ВывестиСообщение();

Один комментарий на «“Расширения конфигурации”»

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

Добавить комментарий

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

   

2018г. Профессия — 1С. Обмен опытом по программированию в 1С