Механизм расширения конфигурации в 1С 8.3.6

19.06.15

Разработка - Механизмы платформы 1С

Какие возможности предоставляет механизм?! Изменять существующие управляемые формы, добавлять отчеты и обработки, добавлять и изменять состав подсистем. И всё это не изменяя конфигурации. Даже не снимая её с поддержки. Но! Есть нюанс - режим совместимости конфигурации должен быть отключен!

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


Рассмотрим пример замены обработчика кнопки в форме элемента справочника.

 


В основной конфигурации, код обработчика кнопки:

Заменим обработчик на свой. Для этого позаимствуем форму справочника в своё расширение:
Находим в дереве основной конфигурации форму, в контекстном меню выбираем команду "Добавить в расширение". Откроется диалог управления расширениями. Добавим в него новое расширение и выберем.
Откроется дерево нового расширения с позаимствованной формой.


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


Запускаем конфигурацию на проверку, выполняем команду и видим следующий результат:

 


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

 



Результат желанный:


Если хотите перехватить событие, ПОСЛЕ выполнения обработчиков, то есть метод УстановитьВыполнениеПослеОбработчиковСобытия

 

 


В результате:

 

 

 

Если мы добавим ещё одно расширение, то сперва вызовется обработчик 2-го расширения, затем 1-го, потом уже основной.

Диалог управлением можно вызвать в режиме конфигуратора через меню Конфигурация->Расширения конфигурации. В режиме предприятия Все функции -> Стандартные ->Управление расширениями конфигурации.

См. также

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

23.06.2024    7462    bayselonarrend    20    

154

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Пример использования «Сервисов интеграции» без подключения к Шине и без обменов.

13.03.2024    5947    dsdred    16    

80

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Бесплатно (free)

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

24.01.2024    17675    YA_418728146    26    

71

Перенос данных 1C Механизмы платформы 1С Системный администратор Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Вы все еще регистрируете изменения только на Планах обмена и Регистрах сведений?

11.12.2023    11229    dsdred    44    

130

Механизмы платформы 1С Программист Бесплатно (free)

Язык программирования 1С содержит много нюансов и особенностей, которые могут приводить к неожиданным для разработчика результатам. Сталкиваясь с ними, программист начинает лучше понимать логику платформы, а значит, быстрее выявлять ошибки и видеть потенциальные узкие места своего кода там, где позже можно было бы ещё долго медитировать с отладчиком в поисках источника проблемы. Мы рассмотрим разные примеры поведения кода 1С. Разберём результаты выполнения и ответим на вопросы «Почему?», «Как же так?» и «Зачем нам это знать?». 

06.10.2023    23763    SeiOkami    48    

135

Механизмы платформы 1С Системный администратор Платформа 1С v8.3 Бесплатно (free)

Начиная с версии платформы 8.3.22 1С снимает стандартные блокировки БД на уровне страниц. Делаем рабочий скрипт, как раньше.

14.09.2023    18835    human_new    27    

80

WEB-интеграция Универсальные функции Механизмы платформы 1С Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    14735    YA_418728146    7    

166
Вознаграждение за ответ
Показать полностью
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. DoctorRoza 19.06.15 15:59 Сейчас в теме
Краткость - сестра таланта!
chuprina_as; +1 Ответить
2. baracuda 2 19.06.15 16:06 Сейчас в теме
Ссылку бы приложили на документацию.
Если конечно она существует.
1С уже привыкла что, документацию за нее пользователи пишут.
creatermc; Aquashop; RainyAugust22; ivnik; Dvornik; delete; +6 Ответить
13. nixel 1434 25.06.15 10:44 Сейчас в теме
(2) baracuda, вся документация по расширениям есть на ИТС. Причем с примерами более подробными, чем в этой "статье".
Student1C; +1 Ответить
3. kuntashov 463 19.06.15 17:24 Сейчас в теме
Решение реальной прикладной задачи с помощью механизма, а не абстрактный пример - http://infostart.ru/public/359597/
creatermc; Мах; pauk.; Zircool; Spacer; artbear; DexterMorgan777; ekaruk; Дмитрий74Чел; Bassgood; +10 Ответить
4. dj_serega 393 19.06.15 18:03 Сейчас в теме
Нормик. Взял на заметку.
chuprina_as; adhocprog; +2 Ответить
5. Bassgood 1449 19.06.15 23:39 Сейчас в теме
(0) По моему публикация получилась скудная, в (3) намного полнее освящена эта тема (на сколько помню, была еще одна статья на эту тему с применением этой возможности для проверки ИНН контрагентов)
6. baracuda 2 20.06.15 14:47 Сейчас в теме
Ребята, подскажите пожалуйста.
Допустим я добавил новый реквизит на форму, могу ли я его записывать в регистры сведений?
Чтоб в дальнейшем по нему отчеты строить?
7. w.r. 650 20.06.15 18:01 Сейчас в теме
Полгода как уже на сайте 1С http://v8.1c.ru/o7/201410ext/index.htm
ryutao; E_BEREZIN; zqzq; +3 Ответить
8. raminka 22.06.15 21:12 Сейчас в теме
9. ZMD2065 17 24.06.15 10:26 Сейчас в теме
Интересный механизм. Возникает вопрос: если форма основной конфигурации изменяется, то позаимствованная форма в расширении изменится? Если нет, то механизм не очень полезен, т.к. придётся заново переписывать расширение для того чтобы получить новые возможности типового функционала и это в таком случае ничем не отличается от исправления модуля формы. Если же форма наследуется, то тогда действительно ценный механизм.
Вы этот момент проверяли?
10. binex 279 24.06.15 10:32 Сейчас в теме
(9) bondar_vy@mail.ru, формы наследуются. Завязка идёт на имена реквизитов. Более того, в случае если подключено несколько расширений, то каждое последующее расширение использует в качестве позаимствованной формы результат предыдущего расширения.
11. lvictor58 137 24.06.15 13:43 Сейчас в теме
Насколько я понимаю: для возможности создания расширений необходимо для конфигурации отключить режим совместимости (Свойства --> Совместимость --> Режим совместимости = "Не использовать"). А для этого надо отключить поддержку. В противном случае эта опция недоступна. И вся прелесть автоматической поддержки теряется. Или я не там рою?
12. binex 279 24.06.15 14:07 Сейчас в теме
(11) Так точно. Нюанс упомянут в статье. Механизм на будущие конфигурации. Хотя в БП 3.0 его уже можно употреблять.
14. nixel 1434 25.06.15 10:45 Сейчас в теме
(11) lvictor58, БП 3.0.41 уже без совместимости с 8.3.6. Скоро поднятутся остальные типовые
15. rus128 2 01.07.15 13:22 Сейчас в теме
Спасибо, познавательно. Но стиль языка довольно низкий, пунктуация местами неверная, плюс опечатка в сообщении в последнем примере (обАРботчика) - как в исходном тексте, так и на скриншоте.
18. леша 07.11.15 02:24 Сейчас в теме
(15) тоже про оБАРботчик заметил )))
16. DexterMorgan777 3 23.07.15 17:25 Сейчас в теме
Спасибо за пример. Помогло в одной задачке.
17. Borisych 503 22.10.15 13:13 Сейчас в теме
После обновления конфигурации все расширения оказались пустыми... Кто-нибудь сталкивался? Причем я сохранял их в файлы, при сравнении с файлами ничего не происходит интересного, как-будто в файлах тоже никакой информации нет.
19. echo77 1906 09.11.15 18:07 Сейчас в теме
(0) Как я понимаю для конфигураций, у которых режим запуска обычное приложение этот механизм работать не будет?
20. DreamcastMD 25.12.15 13:47 Сейчас в теме
Вот меня давно мучает вопрос, как правильней :
1. Делать много расширений на каждый измененный объект. (Вижу плюсы, в случае кардинальных изменений от поставщика отвалится только одно это расширение, остальные продолжат работать. Но список используемых расширений может оказаться довольно большим)
2. Все изменения максимально вносить в одно расширение (может на скорость работы как-либо влияет)
21. Yashazz 4791 05.01.16 00:46 Сейчас в теме
Фигня, а не публикация, прости хосспади. Передран кусок данных с ИТС и всего делов - 66 плюсов в копилку. Копипаст рулит, дааа...
Где б тут минус поставить, а?
22. binex 279 05.01.16 09:01 Сейчас в теме
(21) Yashazz, плюсы в копилке погоды не делают. )) Статья, как следствие финального задания известных курсов. )
23. Yashazz 4791 05.01.16 10:43 Сейчас в теме
(22) во-первых, делают. По крайней мере, ещё как делали раньше. Во-вторых, это ведь действительно отрывок из общеизвестной публикации с http://its.1c.ru/db/v837doc#bookmark:dev:TI000001528, причём совершенно непоследовательно вырезанный и без полномасштабного примера, каковой там приведён. В третьих, не понимаю, как публикация на ИС может быть следствием задания с каких-либо курсов, тем более такая куцая и дублирующая общедоступное. Вот если б вы изложили нечто, чего в документации нет - тогда понятно, а это, пардон, зачем?..
24. chuprina_as 251 27.02.16 16:43 Сейчас в теме
А мне статья понравилась. Классный тизер по технологии, стимулирующий дальнейшее знакомство с темой. Много букв честно вогнали бы меня в уныние и я бы не осилил.
Отдельное спасибо за наглядность. Однозначный +.

Автор, не обращай внимания на хейтеров.
25. pvvpvv 10 27.02.16 17:01 Сейчас в теме
(0) А Вы пробовали выгрузить конфигурацию?
26. fixin 4273 04.05.16 11:11 Сейчас в теме
Хо, все таки расширения еще не доделаны. Обработчик событий формы - это хорошо. Но если нужно вмешиваться на уровне модуля? Вообще, хорошо что 1с движется в сторону Аспектно-Ориентированного Программирования, но что то как-то неуверенно.
alevnev; maksa2005; baracuda; +3 Ответить
27. SeTIrk 08.06.16 11:22 Сейчас в теме
Если я правильно понял сейчас мы можем подключиться только к обработчику события, а заменить вызов процедуры и функции пока нельзя.
Для того чтобы подправить проверку в 5 по стеку функции приходится копировать все 4 функции до, и править пятую.
Ну и общие модули по всей видимости по той же причине не возможно редактировать.

Ждем 8.3.9
28. Evgen2866 06.10.16 13:38 Сейчас в теме
Господа, не подскажите куда покопать?
Создал расширение в тестовой базе, протестировал, все работает.
Переношу в рабочую, не работает. Как будто нет вообще никакого расширения.
30. alevnev 04.08.17 18:01 Сейчас в теме
(28) Проверить возможность расширения конфигурации через "Все функции"- Стандартные - Управление расширениями конфигурации.
29. alevnev 04.08.17 17:58 Сейчас в теме
Есть довольно тонкий нюанс при добавлении в расширения справочника (документа), который используется в обработках расширения! Если вместе со справочником не добавлять его формы, то в результате платформа сгенерирует форму автоматически и в основную форму объекта из конфигурации (а не из расширения) Вы не увидите на экране никогда. Столкнулся с такой ситуацией в Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.51.16) + Расширение конфигурации на платформе 1С:Предприятие 8.3 (8.3.9.2170).

После простого добавления основной формы объекта в расширение, не меняя обработчиков событий формы, а токмо назначив соответственно эту форму в расширении тоже основной, решил эту ситуацию.
31. Kuzzka 27.12.17 13:42 Сейчас в теме
Возможно кто то сталкивался с такой проблемой и знает как ее решить:
Обновился до 8.3.11, добавил расширение и начал переносить в него все возможные реквизиты, модули, макеты и формы.
Есть модуль объекта, в нем обработка команды "печать". Процедура в расширении обращается к модулю менеджера, модуль менеджера должен перехватываться инструкцией "&Вместо("")", в расширении в модуле менеджера дубль этой процедуры с одним исключением - она экспортная, но при отработке кода программа не находит эту процедуру. Когда явно указываешь заменяемую процедуру - все нормально, а вот при обращении из расширения не отрабатывает инструкция "&Вместо("")". Кто знает - как быть? не очень хочется все обращения к типовому механизму заменять на прямое обращение к расширению(((
32. pvvpvv 10 28.12.17 12:06 Сейчас в теме
Главный минус расширений в не возможности оценить всю картину, в отличии от копии, например, формы.
Оставьте свое сообщение