Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Доработка модуля формы с помощью расширения

Доработка модуля формы с помощью расширения
Я
   N-S-B
 
26.03.19 - 15:51
Необходимо сделать доработку в модуле формы (только доработка кода формы) с помощью расширения.
Вопрос - если поставщик конфигурации изменит саму форму (добавит на нее новый элемент), после типового обновления конфигурации, у пользователя будут видны новые изменения или будет отображаться старая форма из расширения?
Попробовал потестить на пустой конфе, сделал документ и форму, перенес в расширение. Затем в основной конфигурации на форме вывел новый реквизит, в предприятии новый элемент формы отображается, хотя в расширении отображается старая форма без нового элемента.
Но в гугле пишут, что может все поломаться после обновления, то есть пользователь после обновления увидит необновленную старую форму из расширения?
Так как правильно все таки работает этот механизм?
 
 
   palsergeich
 
1 - 26.03.19 - 16:11
(0) может. У Гилева вроде в бесплатных видео это демонстрировалось. А может и в курсе доработки, не помню точно. Но вопроизводится - факт.
Ждём 8.3.15 там это починят.
   edem911
 
2 - 26.03.19 - 16:14
(0) Если только доработка кода- то слетит в том случае, когда в типовом релизе изменятся (или удалят) имена процедур и функций, которые расширяются.
   edem911
 
3 - 26.03.19 - 16:19
А что за конфигурация?В типовых управленческих конфигурациях(УТ,КА,ERP) есть модули МодификацииКонфигурации. Мы для своих доработок, когда уже несколько раз обожглись на расширениях для этих конф юзаем такой механизм.
   ptiz
 
4 - 26.03.19 - 16:21
(0) Из документации:
"34.4.3.4. Построение результирующей формы

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

1. Выполняется объединение расширяемой конфигурации и первого (по порядку регистрации) расширения.

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

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

1. Если изменений нет ‑ компонента берется из расширяемого объекта;

2. Если изменение есть только в расширяемой форме ‑ компонента берется из расширяемой формы;

3. Если изменение есть только в расширяющей форме ‑ компонента берется из расширяющей формы;

4. Если изменение есть и в расширяемой форме и в расширяющих формах ‑ компонента берется из расширяющей формы."

Т.е. если добавлен новый элемент в исходную форму - он попадает под пункт 1.
   AlvlSpb
 
5 - 26.03.19 - 16:34
(4) а про какую платформу речь в этой документации?
Объясню. Неоднократно сталкивался, что п.2 работает не так как у вас указано. Если кратко, итог объединения конфигурации и нескольких расширений с изменениями в одной и той же форме - это обновления формы в конфигурации (все что поставщик реализовал новое, появляется) и изменения в ПОСЛЕДНЕМ расширении, все остальные изменения в др расширениях затираются. Уже вошло в привычку, надо внести изменение в форму, ищи в существующих расширениях эту форму и если есть такое, объединяй в одно расширение. Возможно прозевал и такое поведение форм исправили в какой-то платформе или все же разработчики выдают желаемое за действительное
   N-S-B
 
6 - 26.03.19 - 16:35
(3) Знаю про это, но мне необходимо поменять логику у события ПриИзменении элемента формы.
(4) Становится немного понятней, но появились вопросы)
Я нигде не нашел определения что же такое сохраненная форма и откуда она берется? Насколько я понял из экспериментов это форма из основной конфигурации в момент, когда я добавляю ее в расширение. Соответственно не понятно, почему мой случае попадает под пункт 1.
   ptiz
 
7 - 26.03.19 - 16:38
(6) https://its.1c.ru/db/v8314doc#bookmark:dev:TI000001528
34.4.3.1. Общая информация

При заимствовании формы происходит заимствование только элементов формы. Реквизиты, команды и параметры формы отображаются в редакторе формы расширения, но не являются фактически заимствованными. Заимствованная форма выглядит точно так, как эта форма выглядит в расширяемой конфигурации в момент добавления ее в расширение. Модуль заимствованной формы не содержит никаких методов. В момент добавления конфигуратор «запоминает» добавляемую форму в расширении. В дальнейшем такая форма будет называться сохраненной.
   AlvlSpb
 
8 - 26.03.19 - 16:59
(6) Если речь только об модификации события одного реквизита, то волноваться нечего. Все вносимые изменения в форму поставщиком, появятся в пользовательском режиме. Расширение может грохнуться только если переименуют/удалят сам реквизит или какие-то элементы участвующие в коде расширения
   N-S-B
 
9 - 26.03.19 - 17:12
(7) (8) Спасибо, разобрался.
   Вафель
 
10 - 26.03.19 - 17:14
говорят, что скоро 1с пересмотрит механизм расширения форм

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.