Представьте: Вы доработали форму, потом в новом релизе добавили реквизиты – но они на форме не отображаются!…
Смотрите в Конфигуратор – есть. Видимость, доступность – все Ok.
Тем не менее – на форме новые реквизиты не видно, хотя они есть!
Вот прямо вчерашний пример из комментариев:
Добавили (заимствовали) форму Заказа в расширение. Вывели на заимствованную форму добавленные в расширении реквизиты. Все хорошо…
Выходит новый релиз конфигурации поставщика, где у документа добавлен КакойТоНовыйРеквизит, который выведен на форму документа в конфигурации поставщика.
Если после обновления расширение успешно подключится, то, как минимум, в режиме Предприятия на форме документа не будет этого нового реквизита.
И с этим надо что-то делать:)
На самом деле нет повода для паники :) Нужно просто помнить, как 1С “вычисляет”, что показывать на форме.
Дело в том, что платформа использует сразу 3 формы:
- Форму из основной конфигурации
- Сохраненную форму
- Форму из расширения.
И как они взаимодействуют – мы разберем в новом видео.
12 минут видео, 100% полезности :)
Профессиональная доработка 1С не должна вызывать проблем с обновлениями
Мы подготовили новый курс, который рассказывает не только про расширения, но и про другие инструменты для доработки типовых конфигураций.
- Как дорабатывать типовые конфигурации внешними средствами
- Как разрабатывать и использовать расширения
- Оптимальные приемы обновления
- Все, что экономит, страхует, помогает.
Musthave для внедренцев.
Доброго дня. Платформа 8.3.23. Задача: разместить реквизит реквизита на форме. В расширение заимствована форма документа. После добавления в расширение реквизита формы Объект, пропадает возможность разименования реквизитов. Почему так происходит?
Заранее благодарю за помощь.
Добрый день!
Это ошибка платформы. На партнерском форуме нашел, что её исправление войдёт в следующие релизы.
Есть добавленная форма в расширение, при обновлении в форму из основной конфигурации добавились новые элементы формы. При нажатии кнопки “Обновить расширение формы” в расширении ни чего не происходит, новые элементы формы не добавляются. Приходится удалять старую форму из расширения, заново добавлять форму в расширение и вносить изменения заново. Релиз платформы 8.3.22.1704, конфигурация Управление холдингом, редакция 3.2 (3.2.3.2)
Добрый день!
Рекомендую новые элементы на форме добавлять при помощи программного кода. Тогда получится, что сама форма в расширении не изменена (набор элементов управления и команд), доработан только программный код. Так проще будет проводить обновление.
Также нужно учесть, что в платформе 8.3.14 изменился порядок работы с формами в расширении. Теперь при заимствовании формы не заимствуются все объекты, необходимые для построения этой формы.
Возможно, Ваша ситуация как-то связана с тем, что расширение исходно создавалось платформой младше, чем 8.3.14. Можно протестировать – попробовать изменить режим совместимости расширения, проверить поведение системы. Или пересоздать расширение на актуальной платформе, с актуальным режимом совместимости (если это, конечно, возможно, например, расширение не изменяет структуру хранения данных).
Здравствуйте.
Для типовых конфигураций с режимом совместимости с версиями платформы 8.3.21 и выше (в моем случае УТ 11.4.15.49) программное добавление элементов формы в расширении еще актуально? Или проблема с формами при обновлении конфы решена?
Добрый день!
Тут нужно проверить на своих базах, на своих примерах и собственных расширениях. Может, у Вас и не воспроизведется на Ваших релизах платформы и конфигурации.
В целом использование программного кода для добавления элементов формы актуально, поскольку позволяет упростить поддержку решения. В программном коде сразу видно, что было добавлено, какие свойства элементов устанавливались. Это проще при обновлениях конфигурации, ведь набор элементов формы при таком подходе не изменяется, всё дорабатывается исключительно в программном коде. Для точечных доработок – это оптимальный вариант.
Добрый день!
Добавил в расширение РегистрБухгалтерии в БП 3.
При обновлении на релиз 3.0.106. все перестало работать.
При анализе таблиц регистра обнаружил добавленные поля ValueDt1…
,которые отсутствовали в старой конфигурации. Каким образом уровнять структуру моего регистра в расширении с типовой конфигурацией? Если создать новое расширение и в нем новый регистр, то все поля создаются. При попытке объединить, создать регистр в старом расширении, все добавленные поля исчезают. Не могу найти решение неделю. Что делать?
Добрый день!
В этом релизе Бухгалтерии изменился режим совместимости конфигурации на Версия 8.3.16. Возможно, в этом причина. Попробуйте изменить режим совместимости расширения.
Добрый день!
Это я сделал сразу. Результат не изменился.
Значит, остается вариант – задавать вопрос разработчикам платформы на v8@1c.ru
Спасибо за информацию про сохраненную форму, но
что делать, если в основной конфигурации нет формы, а в расширении добавляю реквизит, создаю форму элемента (пример, справочник производители в конфигурации УТ11.4) в итоге при открытии формы – открывается “почти типовая форма” с типовыми реквизитами, но декоративные элементы (типа надписи или группы) появляются.
При попытке обратиться к созданному в расширении элементу система выдает ошибку, будто нет такого реквизита (обращался к нему из формы расширения, в правом окне с реквизитами он был, на форме элемент тоже присутствует, но при запуске 1С они все исчезают)
Добрый день!
Предполагаю, что дело в правах доступа к добавленному реквизиту. Если у пользователя нет прав на просмотр реквизита, то на форме в пользовательском режиме он не отобразится.
Добрый день!
А можно в расширении для формы выбора переопределить ПараметрыВыбора.
Например изменить параметры выбора для формы выбора договора: “Отбор.ВидДоговора((СПоставщиком, СКомиссионеромНаЗакупку, СФакторинговойКомпанией))” ?
Извиняюсь, пока писал сам разобрался.
Алексей, хорошо – бывает :)
Спасибо за статью! Несколько дней не мог разобраться со странным поведением формы расширения.
Получилось так:
Добавил Справочник в расширение – добавил новую Табличную часть – Добавил в расширение заимствованную форму Справочника – на ней, чтобы увидеть добавленную ТЧ, основной реквизит формы Объект добавил в расширение – потом добавил элементы формы, установил пути к данным. Все взлетело. !!!! Заметил, что при нажатии кнопки “Обновить расширение формы” слетают пути к данным и добавленная ТЧ в Объекте формы не отображается, и единственный способ ее туда вернуть – сделать все сначала. Ох эти танцы с бубном!
Платформа 8.3.15.1700.
В последней версии вроде исправили. https://bugboard.v8.1c.ru/error/000051765
Добрый день!
Спасибо.
Хорошая новость, потому что пути к данным действительно слетают, это мешает использовать расширения на практике.
Добрый день!
Платформа 8.3.14. Заимствовал в расширение форму документа РеализацияТоваровУслуг и вывел на форму табличную часть добавленную в основной конфигурации в этот документ. Так вот, нюансов масса: 1) При перетаскивании табличной части из правой части конструктора формы в левую не выскакивает сообщение “Перенести все колонки?”, приходится руками перетаскивать все колонки 2) У такой табличной части почему-то полностью пустой список команд, которые должны отображаться на командной панели и в режиме конфигуратора ни одной стандартной команды на командной панели нет, хотя в пользовательском режиме они появляются 3) У такой табличной части хоть убей нету событий ПриАктивизацииСтроки() и многих других, есть только событие ПриИзменении() и все события связанные с перетаскиванием, все. 4) Самое главное, после какого-то момента, когда на форму была уже выведена добавленная тч из основной конфигурации, любые другие реквизиты объекта или же добавленные реквизиты формы в расширении, на форме в пользовательском режиме не отображаются. При этом в конфигураторе они отображаются и кнопка “Обновить расширение формы” нажималась. Помогите, пожалуйста.
Добрый день!
1-3. Да, такое поведение воспроизводится и на платформе 8.3.16.
Можно вот такой способ обхода использовать. В редакторе формы в расширении добавить новый элемент (Ins с клавиатуры или нажать кнопку Добавить), выбрать его тип – Таблица, затем в свойстве ПутьКДанным указать Объект.ИмяТабличнойЧасти.
После этого система запросит, нужно ли добавить колонки. На командной панели будут отображаться кнопки, а в списке событий – будут доступны все события, в том числе и ПриАктивизацииСтроки.
4. Тоже встречается такое. По наблюдениям – что-то происходит со свойством ПутьКДанным. Если его перевыбрать у проблемных элементов, они снова начинают отображаться. Еще иногда помогает закрыть конфигуратор, снова открыть, нажать кнопку Обновить расширение формы. Точной закономерности пока не уловил.
Здравствуйте!
Добавил форму документа в расширение. На форме есть дерево значений, добавляю новую колонку но система почему то не дает изменить ни название ни тип колонки.
Подскажите пожалуйста, что нужно сделать, чтобы система дала изменить название и тип колонки?
Добрый день!
У меня воспроизводится подобное поведение, но как-то нестабильно – иногда система может разрешать редактирование имени добавленной в расширении колонки, хотя чаще действительно не дает редактировать.
Нашел вот такую опубликованную ошибку – https://bugboard.v8.1c.ru/error/000051727
В расширении конфигурации, в форме, свойства добавленных колонок табличной части объекта не доступны для редактирования.
Так что попробуйте платформу посвежее использовать.
ААААААААААААААААААААААААААААААААА!!!
О боги… я раз пять то удаляла форму из расширения, то снова добавляла. 1С:Предприятие 8.3 (8.3.14.1854). И все таки мой реквизит ТЧ документа там появился…
Спасибо за статью и видео – без них я бы не справилась.
Пожалуйста!
Интересного обучения!
Добрый день! Подскажите, а почему нельзя удалить реквизит (колонка реквизита формы “тфПараметрыНазначения” с типом ТаблицаЗначений, которое было заимствовано из основной конфигурации), который я добавила в расширение.
Правильно ли я сделала, когда удалила сам реквизит “тфПараметрыНазначения” и добавила его в расширение обратно?
Добрый день!
Тут все зависит от версии платформы. Если версия младше 8.3.14, то удалить колонку таблицы значений можно, иначе – нет. Это связано с тем, что в платформе 8.3.14 изменился механизм работы с формами – при заимствовании формы происходит заимствование только элементов формы (реквизиты, команды и параметры формы не заимствуются). Можно предложить вариант поработать со свойством видимости колонки на форме и при этом ее не удалять из таблицы значений.
Ольга, спасибо за ответ. Да, платформа 8.3.15.
Мне этот реквизит совсем не нужен (реализовала задачу по другому), и добавляла я только его одного, поэтому вариант, который я написала (удалила сам реквизит “тфПараметрыНазначения” и добавила его в расширение обратно) мне подошёл. Проверила работу в данной форме, вроде ничего не поломалось.
Конечно, если бы я добавила много реквизитов, а потом захотела бы удалить один, то получается при таком подходе (удалении реквизита и добавлении его обратно) пришлось бы остальные добавленные мной реквизиты обратно добавлять, что не удобно, но всё таки правильней, а вариант с видимостью на мой взгляд не очень корректный, так как вызывает в последующем непонимание зачем был добавлен данный реквизит и наверно затрачивает дополнительный объем памяти.
Спасибо ещё раз за ответ, теперь буду думать дважды когда буду добавлять свои реквизиты на форму в расширении. Надеюсь, правда, разработчики продумают этот момент.
Здравствуйте!
8.3.14.1779, ЕРП 2.4.8.84
Такая проблема – есть расширения, в которых не активна кнопка “добавить в расширение”.
В чём может быть проблема?
Добрый день!
У меня не воспроизвелось. Возможно, зависит от типа объекта, который Вы пытаетесь добавить в расширение. Или проблема конкретного релиза платформы.
А как дружит расширение с конвертацией данных? Если я создал расширение, добавил в нём новый реквизит в документ, а потом выгрузил информацию о структуре информационной базы – попадёт туда расширение?
Добрый день!
В тестовую конфигурацию загрузил расширение, в котором в документе добавил реквизит.
При помощи обработки MD82Exp.epf из Конвертации данных выгружаю структуру конфигурации в xml-файл. В полученном файле новый реквизит из расширения присутствует.
А что если ситуация интереснее?! Вы только добавили реквизиты в только что созданную форму расширения и они не показываются. В чем дело если сохраненная форма не причем?
Добрый день!
Возможно, дело в правах доступа.
Здравствуйте. Платформа 8.3.14, Добавил в расширение заимствованный объект “ПодразделенияОрганизаций”, добавил в него свой реквизит “GC_Кластер”. Заимстовал форму элемента, пытаюсь вывести на форму добавленный реквизит, но в реквизитах объекта на форме его попросту нет. Раньше вроде бы таких проблем не было, сейчас как то иначе это делается?
Добрый день!
В конструкторе формы добавляю Объект в расширение:
После этого на форму можно вынести созданный в расширении реквизит:
Добрый день. Спасибо за ответ. После того как добавляешь объект в расширение, с формы сразу же пропадают реквизиты, которые не добавлены заимствованием в расширение. И в режиме предприятия форма выглядит после этого ровно так как в расширении, без половины реквизитов. Научите добавлять скрины сюда
1. Взял последнюю на сегодняшний день платформу – 8.3.15.1489.
Заимствовал форму справочника в расширение, добавил новый реквизит формы. После этого добавил Объект в расширение.
Реквизит формы остался на месте:
Попробуйте для теста повторить Ваши действия на чистом расширении под свежей версией платформы.
2. На этой странице нельзя добавлять скриншоты, только на страницах Мастер-группы.
Недопонимание.
1. Создаю новое расширение (единственное)
2. В расширение добавляю заимствованием справочник “Подразделения организаций”, объект и форму объекта
3. Захожу в расширении в объект “Подразделения организаций” и добавляю в него 2 реквизита – Реквизит1, Реквизит2
4. Захожу в расширении в форму объекта, нажимаю правой кнопкой мыши по корню “Объект”, жму добавить в расширение (без этого нет возможности вывести на форму добавленные мной реквизиты, см. пункт 3). После данного действия, элементов на заимствованной форме становится раза в 2 меньше чем было до.
Как мне кажется с формы исчезают элементы, которые не были добавлены заимствованием в расширение. Например есть в реквизитах формы набор записей регистра сведений (типовой реквизит), а сам регистр сведений в расширение я не добавлял. При выполнении вот этого действия (нажимаю правой кнопкой мыши по корню “Объект”, жму добавить в расширение) данный реквизит пропадает с формы в расширении.
Если в расширении в форме объекта нажать правой кнопкой по корню “Объект” и нажать удалить, а затем обновить форму расширения из конфигурации, реквизит снова появляется на форме.
5. Если мои догадки и пункта 4 верны, то получается не очень весело, например на форме есть 50 типовых реквизитов, которые ссылаются на разные справочники, регистры сведений, измерения регистров сведений, нужно пройтись по конфигурации и руками подобавлять каждый такой объект в расширение.
Конфигурация Зарплата и управление персоналом КОРП, редакция 3.1 (3.1.10.50), платформа 8.3.14.1565
Посидел немного поковырялся еще
1. Создаю новое расширение (единственное)
2. В расширение добавляю заимствованием справочник “Подразделения организаций”, объект и форму объекта
3. Захожу в расширении в объект “Подразделения организаций” и добавляю в него 2 реквизита – Реквизит1, Реквизит2
4. Захожу в расширении в форму объекта, нажимаю правой кнопкой мыши по корню “Объект”, жму добавить в расширение (без этого нет возможности вывести на форму добавленные мной реквизиты, см. пункт 3). После данного действия, элементов на заимствованной форме становится раза в 2 меньше чем было до.
Я не имею ввиду данные формы, сами поля остаются, но у них почему то слетает путь к данным, который раньше был “Объект.ИмяТиповогоРеквизита”, как следствие реквизиты перестают отображаться на форме для пользователя. При этом, если руками прописать путь к данным, то слетает синоним реквизита, который был в основной конфигурации.
Например имя реквизита – “ПроцентСевернойНадбавки”, синоним – “% северной надбавки”, нажимаю правой кнопкой мыши по корню “Объект”, жму добавить в расширение, путь к данным слетает, прописываю руками путь к данным, реквизит вновь отображается на форме, но с синонимом “ПроцентСевернойНадбавки”
Вот с такой ситуацией сталкивался, когда ПутьКДанным очищался после заимствования объекта в расширение.
На партнерском форуме нашел даже ссылку на сайт для публикации ошибок как раз для этого случая:
https://bugboard.v8.1c.ru/error/000051765.html
Но никакой конкретики по поводу статуса ошибки, сроков исправления, к сожалению, на этой странице нет.
Так что остается пока только тестировать на свежих версиях платформы.
Ясно, спасибо за ответ
В 1С:Предприятие 8.3 (8.3.14.1694) не работают ваши рекомендация и там нет сохраненной формы или формы расширения
Механизм конечно хороший, но не доработан еще
Добрый день!
В платформе 8.3.14 изменился механизм работы с формами. При заимствовании формы происходит заимствование только элементов формы. Реквизиты, команды и параметры формы при этом не заимствуются.
В конструкторе формы в конфигураторе убрали кнопку для просмотра сохраненной формы. Но согласно документации при заимствовании запоминание сохраненной формы происходит.
То, что механизм расширений будет дорабатываться и активно развиваться, – тут согласен.
Здравствуйте. Добавил в расширении в заимствованный объект 2 своих реквизита, вывел их на заимствованную форму, заимствованная форма полностью соответствует основной форме, тем не менее в режиме предприятия реквизиты на форме не отображаются. В отладке в конфигураторе, при создании на сервере &Перед, в элементах данных реквизитов так же нет. Подскажите куда копать?
Добрый день!
В первую очередь нужно смотреть права доступа. У пользователя будет доступ ко всем объектам расширения, если в расширении нет ни одной роли.
Если же в расширении есть роли, то необходимо явно заимствовать роли из основной конфигурации в расширение, назначать права на все объекты (в т.ч. на реквизиты и табличные части).
Спасибо!!! Очень помогло!
Пожалуйста!
Интересного обучения!
Занимаюсь доработкой УНФ для металлургического предприятия.
Потребовалось доработать документ Сборка Запасов, причём существенное различие имеют формы для операции “Сборка” (в моём случае “Плавка”), и “Разборка” (У меня это “Сортировка Сырья”), Кроме этого нужно оставить и базовую функциональность (“Производство”). Хотелось бы сделать ДВЕ заимствованные формы и оставить Форму из базовой конфигурации. Все изменения структуры информации внесены в базовую конфигурацию. В расширении сделал заимствованную форму и переименовал (“ФормаПлавки”), затем сделал копию заимствованной формы в расширении (“ФормаСортировки”), сделал в расширении команды для вызова соответствующих форм …
Понимаю, что это не единственный путь, подскажите какая дорога ведёт к храму !!!
Добрый день!
Можно в расширении сделать одну новую форму для двух видов операции (программно скрывать/отображать элементы формы в зависимости от вида операции), тогда при смене вида операции не придется открывать другую форму, переносить в нее введенные пользователем данные.
Если форма в расширении будет отдельная (не заимствованная из основной конфигурации), специально созданная для конкретной базы, при обновлении не возникнет поведения платформы, которое демонстрируется в видеоуроке на данной странице.
Также при помощи расширения можно переопределить основную форму документа (использовать модифицируемое свойство), тогда по умолчанию будет открываться форма из расширения, а не из основной конфигурации.
Добрый день.После изучения курса начал применять знания на практике.
В ЗУП 3.1 была доработана форма документа “ДанныеДляРасчетаЗарплаты”.
Добавлены пара кнопок с соответствующими процедурами в модуле.
Форму перенес в расширения и добавил свои процедуры. Проверил: все работает отлично. Затем обновил конфигурацию до последнего релиза.
Изменения в расширении сохранились, но в результирующей форме моих кнопок не оказалось. Я еще раз пересмотрел это видео, ситуация такая как изложено.Форма поставщика изменилась, есть изменения по сравнению с сохраненной формой и соответственно моих изменений не видно.Я нажимаю кнопку “Обновить расширение формы” чтобы обновить сохраненную форму,но при этом удаляются все сделанные мной доработки в расширении. Я что-то не так делаю? Как обновить сохраненную форму и сохранить свои изменения? Либо каждый раз при изменении формы поставщиком, нужно обновить сохраненную форму и заново вносить в расширение свои изменения?
Добрый день!
Вы всё правильно делаете. В видеоуроке показана такая же ситуация – после обновления сохраненной формы приходится изменять свойства элемента формы в расширении.
После обновления конфигурации нужно обновить сохраненную форму, довнести изменения в расширение, чтобы и после обновления оно отображалось и работало корректно.
Как то это не правильно.Есть внесенные изменения в расширении: элементы формы, процедуры (и довольно объемные) в модуле.И при каждом изменении поставщика все надо делать заново.Неужели все свои доработки нельзя сохранить как то в виде шаблона.А то получается обновил,все затерлось и даже скопировать неоткуда.
Программный код при этом не пострадает, он останется. А вот элементы формы надо будет создать заново.
Как вариант обхода – создавать элементы формы программно, тогда сама форма останется типовой.
Еще можно перед обновлением сохранять расширение в файл, тогда можно будет выполнить сравнение-объединение расширения из базы с расширением из файла, чтобы найти отличия.
Большое спасибо за ответы.
Добрый день!
Никак не могу найти ответ на следующий вопрос. Есть доработанная конфигурация. Хочется перенести доработки в расширение. Но как перенести в расширение добавленные реквизиты, а затем эти добавленные реквизиты удалить из расширяемой конфигурации, чтобы поставить объект на поддержку?
Добрый день!
Например, в справочник добавлен Реквизит1. Переименовываем его в УдалитьРеквизит1. В расширении создаем Реквизит1. Обработкой переносим данные из УдалитьРеквизит1 в Реквизит1. После этого УдалитьРеквизит1 можно удалять из основной конфигурации.
Можно добавить ее в общую типовую процедуру, вызываемую из большинства форм, в таком случае форма останется полностью типовой.
Добрый день!
Да, можно так сделать. В курсе рассматривается такой вариант.
Но сейчас у нас другая задача – разобрать нюансы работы с формами при помощи расширения, посмотреть, что такое сохраненная форма, какое влияние она оказывает.
Спасибо за видео. хороший познавательный пример. но есть вопрос.
Когда придет обновление конфигурации от поставщика, и там изменится форма. Сохраненная форма при обновлении автоматически обновляется или это надо самому контролировать?
Если эти расширения не работаю с хранилищем, то для серьезных изменений их ещё рано использовать. ни истории ни совместной работы .
Добрый день!
Сохраненная форма автоматически не обновится, это надо контролировать вручную.
Расширения конфигурации пока не работают с хранилищем. Это запланировано в версии 8.3.12.
Добрый день! После просмотра видео для себя решил что правило “доработка формы только программно” остаётся в силе:) Строка “Элементы.ОсновнойМенеджер.Доступность = Ложь;” в расширении “после” процедуры “ПриСозданииНаСервере” более надёжный вариант.
Я же правильно понимаю, что она точно никуда не пропадёт при обновлении формы?
На мой взгляд, в расширениях интерактивно [=быстро] лучше только создавать новые элементы формы – в таком случае минимум шансов поломки при обновлении конфигурации [=изменении формы]. А все изменения заимствованных элементов – программно.
p.s. Тема интересная. Хотелось бы в перспективе еще и более сложных примеров. Думаю, это будет в курсе. Например: в группу “Группа1” исходной формы в расширении добавили элемент “Кнопка1”. После этого “Группа1” была удалена разработчиками конфигурации из исходной конфигурации при обновлении. Что будет с “Кнопка1” в результате?
p.s.s. Возможно, в примере выше будет различный результат, в зависимости от того изменялась ли “Группа1” в расширении или нет – надо будет поставить опыт.
Добрый день!
Да, может оказаться, что программная доработка форм – более удобный вариант при обновлении.
В Вашем примере Кнопка1 останется на результирующей форме.
Спасибо, очень полезное видео.
Добрый день!
Все очень обстоятельно объяснили, спасибо!
Непонятно одно – откуда у разработчиков этого механизма такая, скажем мягко, “странная” логика? Это то, что называется “банановая кожура на асфальте”, – кто-нибудь обязательно да подскользнется… Разбрасывать такие вещи на оживленных перекрестках – ну это, друзья, моветон (чтоб не сказать – “садизм”)!
Без всего этого можно было бы легко обойтись, как мне кажется.
При формировании результирующей формы нам нужно понимать, что изменено в форме расширения по сравнению с исходной. Все остальное –
нужно брать из расширяемой формы, изменено там это до создания расширенной формы или после.
Т.е., храните только изменения в расширенной форме и будет Вам счастье!
Кстати, на всякий случай, это не я придумал. Все замечательные штуки 1С с расширениями (очень полезные, правда) – суть эмуляция наследования в методологии объектно-ориентированного программирования. А там, кажется, именно так все и реализуется.
С уважением.
Добрый день!
Предполагаю, что использование сохраненной формы позволяет получить более правильную результирующую форму.
Например, поставщик в очередном релизе удалил элемент управления с формы, а на форме в расширении этот элемент еще присутствует. Если не использовать сохраненную форму, то в результате этот элемент будет отображаться на форме (получается, что он добавлен в расширении).
А если использовать сохраненную форму, то получится, что в расширении нет изменений по сравнению с сохраненной формой, а в основной конфигурации есть изменения по сравнению с сохраненной формой. Значит, в результирующую форму надо брать изменения из основной конфигурации, наш элемент не будет отображаться на форме.
Разработчики платформы на партнерском форуме писали, что “Задача по улучшению ситуации со стабильностью форм к обновлениям у нас записана”. Так что, возможно, что в очередном релизе платформы можно будет ожидать изменений.
Это хорошо, что “задача записана” :)
Что касается Вашего примера, то есть две ситуации:
а) элемент в расширении формы не изменялся – в этом случае он описании расширения храниться вообще не должен, тогда и после удаления его из основной конфигурации нечего проверять и выводиться он не будет
б) элемент в расширении формы был изменен, тогда при контроле применимости при обновлении разработчику должна быть выдана информация о том, что базовый элемент отсутствует, для принятия мер.
Наличие сохраненной формы здесь ничем не помогает.
С уважением.
Наличие
В своем примере я исходил из того, что в расширении хранится полноценная форма, а не только информация об изменениях.
Возможно, разработчики платформы специально хранят полностью форму, для устойчивости и надежности.
Получается, что для того, чтобы применить методику работы с расширением, правильным будет следующий порядок действий:
1) обновить форму основной конфигурации до типовой;
2) получить ее в расширение;
3) в расширении выполнить все доработки, которые были в форме?
Добрый день!
Да, такой порядок действий.
А зачем вообще нужна такая сущность как “сохраненная форма”? Форма из расширения должна сравниваться с формой из конфигурации.
Добрый день!
Сохраненная форма образуется при заимствовании формы из основной конфигурации в расширение конфигурации. Она используется при построении итогового интерфейса, с ней сравнивается форма из основной конфигурации и из расширения. Это такой “базис”, от которого рассчитываются изменения. Предполагаю, что использование сохраненной формы позволяет получить более правильный результат.
Например, поставщик в очередном релизе удалил элемент управления с формы, а на форме в расширении этот элемент еще присутствует. Если не использовать сохраненную форму, то в результате этот элемент будет отображаться на форме.
А если использовать сохраненную форму, то получится, что в расширении нет изменений по сравнению с сохраненной формой, а в основной конфигурации есть изменения по сравнению с сохраненной формой. Значит, в результирующую форму надо брать изменения из основной конфигурации, наш элемент не будет отображаться на форме.
Добрый день!
Подскажите пожалуйста, описанный механизм формирования результирующей формы относится только к элементам управления или ко всем её компонентам – модуль, реквизиты, команды, параметры?
Добрый день!
Описанный механизм относится к элементам управления, реквизитам, параметрам, командам.
Для модулей используется немного другой подход – применяются аннотации Перед, После, Вместо, которые указывают, когда должен выполняться код из расширения.
Это ДЕЙСТВИТЕЛЬНО очень НУЖНЫЕ и очень ИНФОРМАТИВНЫЕ 13 минут )))
Не зря потрачено!
Всё очень ЁМКО и ПОНЯТНО … как всегда)
Расширение крутая штука, нереально! Ковыряю их потихонечку
В данном случае, суть ясна!
Я думаю что при обновлении основной конфигурации, можно “выкинуть” это в работу, и ждать обратной связи от пользователей)
Да, жестоко, но зато эффективно )))))))))
:))
Получается, что расширения не очень-то и упрощают обновление доработанных форм? Нужно как и раньше анализировать изменения на форме и вносить их?
Добрый день!
Возможно, в каких-то случаях поддержка усложнится. Поэтому нужно понимать, как работает этот механизм.
Спасибо за оперативность и видио. т.е. после каждого обновления я должен буду проверять все свои расширения, обновлять сохраненную форму, а потом еще в повторно вносить изменения в расширенную форму? кажется работы стало в разы больше… поправьте если не прав.
Добрый день!
Тут зависит от объема и характера доработок в конкретной базе. Главная задача расширений – возможность оставить конфигурацию типовой, при этом реализовать дополнительный функционал, необходимый заказчику.
Типовая конфигурация может обновляться автоматически без нашего участия. А доработанные механизмы необходимо в любом случае проверять, чтобы после обновления ничего не сломалось.
Думаю, что в платформе еще нет всех механизмов, связанных с использованием расширений, которые необходимы для комфортной работы. Надеюсь, что в следующих релизах платформы появятся инструменты, которые будут помогать в подобных ситуациях. Ведь платформа развивается. Например, в 8.3.12 анонсирована поддержка разработки расширений при помощи хранилища конфигурации.
Так и здесь – возможно, появится какой-то еще функционал.
Василий спасибо.
Пожалуйста! Обращайтесь:)