|
Доработка модуля формы с помощью расширения | ☑ | ||
---|---|---|---|---|
0
N-S-B
26.03.19
✎
15:51
|
Необходимо сделать доработку в модуле формы (только доработка кода формы) с помощью расширения.
Вопрос - если поставщик конфигурации изменит саму форму (добавит на нее новый элемент), после типового обновления конфигурации, у пользователя будут видны новые изменения или будет отображаться старая форма из расширения? Попробовал потестить на пустой конфе, сделал документ и форму, перенес в расширение. Затем в основной конфигурации на форме вывел новый реквизит, в предприятии новый элемент формы отображается, хотя в расширении отображается старая форма без нового элемента. Но в гугле пишут, что может все поломаться после обновления, то есть пользователь после обновления увидит необновленную старую форму из расширения? Так как правильно все таки работает этот механизм? |
|||
1
palsergeich
26.03.19
✎
16:11
|
(0) может. У Гилева вроде в бесплатных видео это демонстрировалось. А может и в курсе доработки, не помню точно. Но вопроизводится - факт.
Ждём 8.3.15 там это починят. |
|||
2
edem911
26.03.19
✎
16:14
|
(0) Если только доработка кода- то слетит в том случае, когда в типовом релизе изменятся (или удалят) имена процедур и функций, которые расширяются.
|
|||
3
edem911
26.03.19
✎
16:19
|
А что за конфигурация?В типовых управленческих конфигурациях(УТ,КА,ERP) есть модули МодификацииКонфигурации. Мы для своих доработок, когда уже несколько раз обожглись на расширениях для этих конф юзаем такой механизм.
|
|||
4
ptiz
26.03.19
✎
16:21
|
(0) Из документации:
"34.4.3.4. Построение результирующей формы В режиме 1С:Предприятие для получения результирующего объекта происходит объединение расширяемого и всех расширяющих объектов. Процесс объединения работает следующим образом: 1. Выполняется объединение расширяемой конфигурации и первого (по порядку регистрации) расширения. 2. Объединение повторяется для каждого следующего зарегистрированного расширения, при этом в качестве расширяемой конфигурации выступает результат предыдущего объединения. С точки зрения каждого следующего объединения, результат предыдущего объединения будет считаться расширяемым объектом. В процессе объединения каждой компоненты (элемент, реквизит, параметр или команда) управляемой формы анализируются изменения в расширяемой и расширяющей формах относительно сохраненной. По результатам анализа принимается решение, какая компонента будет отображаться в результирующей форме: 1. Если изменений нет ‑ компонента берется из расширяемого объекта; 2. Если изменение есть только в расширяемой форме ‑ компонента берется из расширяемой формы; 3. Если изменение есть только в расширяющей форме ‑ компонента берется из расширяющей формы; 4. Если изменение есть и в расширяемой форме и в расширяющих формах ‑ компонента берется из расширяющей формы." Т.е. если добавлен новый элемент в исходную форму - он попадает под пункт 1. |
|||
5
AlvlSpb
26.03.19
✎
16:34
|
(4) а про какую платформу речь в этой документации?
Объясню. Неоднократно сталкивался, что п.2 работает не так как у вас указано. Если кратко, итог объединения конфигурации и нескольких расширений с изменениями в одной и той же форме - это обновления формы в конфигурации (все что поставщик реализовал новое, появляется) и изменения в ПОСЛЕДНЕМ расширении, все остальные изменения в др расширениях затираются. Уже вошло в привычку, надо внести изменение в форму, ищи в существующих расширениях эту форму и если есть такое, объединяй в одно расширение. Возможно прозевал и такое поведение форм исправили в какой-то платформе или все же разработчики выдают желаемое за действительное |
|||
6
N-S-B
26.03.19
✎
16:35
|
(3) Знаю про это, но мне необходимо поменять логику у события ПриИзменении элемента формы.
(4) Становится немного понятней, но появились вопросы) Я нигде не нашел определения что же такое сохраненная форма и откуда она берется? Насколько я понял из экспериментов это форма из основной конфигурации в момент, когда я добавляю ее в расширение. Соответственно не понятно, почему мой случае попадает под пункт 1. |
|||
7
ptiz
26.03.19
✎
16:38
|
(6) https://its.1c.ru/db/v8314doc#bookmark:dev:TI000001528
34.4.3.1. Общая информация При заимствовании формы происходит заимствование только элементов формы. Реквизиты, команды и параметры формы отображаются в редакторе формы расширения, но не являются фактически заимствованными. Заимствованная форма выглядит точно так, как эта форма выглядит в расширяемой конфигурации в момент добавления ее в расширение. Модуль заимствованной формы не содержит никаких методов. В момент добавления конфигуратор «запоминает» добавляемую форму в расширении. В дальнейшем такая форма будет называться сохраненной. |
|||
8
AlvlSpb
26.03.19
✎
16:59
|
(6) Если речь только об модификации события одного реквизита, то волноваться нечего. Все вносимые изменения в форму поставщиком, появятся в пользовательском режиме. Расширение может грохнуться только если переименуют/удалят сам реквизит или какие-то элементы участвующие в коде расширения
|
|||
9
N-S-B
26.03.19
✎
17:12
|
(7) (8) Спасибо, разобрался.
|
|||
10
Вафель
26.03.19
✎
17:14
|
говорят, что скоро 1с пересмотрит механизм расширения форм
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |