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

 Делаем:
   1. расширение уже есть, работает.
   2. захватываем в расширение справочник
       добавляем в расширении реквизит справочника
   3. захватываем в расширение форму элемента справочника
       ?? в панели реквизитов формы у нас реквизит "Объект" - серый, просто перетащить его на форму не выйдет(

Варианты решения проблемы:
   1. захватить реквизит формы "Объект" в расширение
      - в расширение захватывается пол конфигурации, это избыточно. не будет понятно что захвачено "просто так", а что захвачено для доработок.

   2. добавить реквизит программно:
      - нет наглядности, не то удобство работы

   3. добавить на форму реквизит "Виртуальный", с типом булево.
       вытащить реквизит формы на форму, настроить его внешний вид, завязать на него всю необходимую логику.
       при создании на сервере заполнять реквизит формы из реквизита объекта
       перед записью на сервере заполнять реквизит объекта из реквизита форы.
       + наглядность, удобность работы как будто это реально реквизит объекта.
       - дублирование реквизитов объекта реквизитами формы. А если так надо вывести 100 новых реквизитов объекта, то создавать ещё и 100 реквизитов формы?
       - лишний код (при создании и перед записью)

Вопросы:
   1. есть мб способ вывести реквизит объекта (созданный в расширение) на форму элемента (захваченную в расширение), не захватывая Объект?
   2. мб есть у кого другие идеи, которые будут лучше чем Варианты решения проблемы № 3?
---
Вы думаете "здесь и сейчас", забывая про обновления основной конфигурации.
Программное изменение формы - это способ поиметь минимум проблем в будущем.
Удачных вам обновлений.
PS. Уверен, что походив по граблям, вы измените свое мнение.
---
Добавить Объект в расширение, а потом удалить все лишние объекты, которые он с собой притянет.
---
Пункт 2 единственно верный, все остальное: лишние объекты в расширении.
---
Не согласен, но это и не важно. Тут нет "верного" решения, у каждого решения свои плюсы/минусы.
---
Добавить Объект в расширение, а потом удалить все лишние объекты, которые он с собой притянет.
---
Как проверить что удалил всё? допустим я проверю справочники, константы. Что ещё он может подтянуть?
Форма от такого не поломается?
---
Функциональные опции, картинки, РС. Раньше формы при добавлении в расширение всегда так себя вели. Удаляете все что сами не добавляли. Если что-то используется, то не удалится.
---
2. добавить реквизит программно:
- нет наглядности, не то удобство работы
Какая наглядность нужна? Три строчки кода внутри ПриСозданииНаСервереПосле:

```1c
    НовыйЭлемент = Элементы.Вставить("Виртуальный", Тип("ПолеФормы"), ЭлементРодитель, ЭлементПеред);
    НовыйЭлемент.Вид = ВидПоляФормы.ПолеФлажка;
    НовыйЭлемент.ПутьКДанным = "Объект.Виртуальный";
```

При обновлении форма, максимум, нужно будет поля ЭлементРодитель и ЭлементПеред заново определить.
---
Проходит 2 года, и вот на форме уже 23 элемента выведенных программно, в т.ч. и различные табличные поля.
Наглядно увидеть как оно выглядит из конфигуратора - не возможно, а стоит задача "немного изменить положения элементов на форме, раскидать элементы по группам, где то шрифт поставить жирный и тд и тп"

Как это делается когда выведено элементами:
у тебя всё перед глазами, ты перемещаешь куда нужно элементы и сразу видишь результат.

Вот что я подразумеваю под наглядностью и удобством работы.
---
Обычно наоборот, через два года так же 2 элемента из расширения, а в исходной базе добавилось 23. Тут никаких проблем.

Зато если добавятся еще расширения, расширяющие ту же форму - это всё будет хорошо работать, что актуально, учитывая, что 1С недавно придумала патчи.
---
Пункт 2 единственно верный, все остальное: лишние объекты в расширении.
---
Не согласен, но это и не важно. Тут нет "верного" решения, у каждого решения свои плюсы/минусы.
---
а я и не говорю о верном-неверном. Другое решение ведет к избытку объектов в расширении.

Я такое уже видел: открываешь расширение, а там пол конфигурации сидит, а все из-за неоптимальных решений.

И Что значит " нет наглядности, не то удобство работы" ?

Да и вы в курсе, что в некоторых типовых даже форму в расширение захватывать не надо для вашей задачи, не то что объект ?
---
Другое решение ведет к избытку объектов в расширении.
Я такое уже видел: открываешь расширение, а там пол конфигурации сидит, а все из-за неоптимальных решений.
Вариант решения №3 не предполагает захват лишней информации в расширение.

И Что значит " нет наглядности, не то удобство работы" ?
Визуально работать с формой легче. Ты наглядно видишь что, где и как.

Да и вы в курсе, что в некоторых типовых даже форму в расширение захватывать не надо для вашей задачи, не то что объект ?
Мне не нужен допреквизит/ допсведение. Если имели ввиду что-то другое, то это интересно.
---
имелось ввиду что-то другое. В типовых конфигурациях семейства УТ, ERP есть общий модуль, предназначенный для модификации конфигурации. Достаточно захватить в расширение только его, чтобы иметь возможность программно менять формы многих основных объектов не хватая что попало в расширение.

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

Как добавить реквизит в таком случае?

А "работать с формой легче" не оправдание неоптимального вмешательства.
Код должен быть понятный, легко модифицируемый, а результат - наглядный. Программный вывод элементов на форму во всех случаях - избыточное невмешательство. Да, бывает что без программного создания совсем не обойтись. А бывает где можно обойтись без него, но с ним проще/наглядней/оптимальней. Вот в этом случае программное создание - оправдано. Имхо, конечно
---
Как добавить реквизит в таком случае?
 Ладно, не прав - объект нужно. но и все.

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

Любая палка имеет два конца, и возможно в следующей подобной задаче я приму вашу точку зрения (зависит от специфики задачи)
Ведь в каждом отдельном случае мы:
1. Сначала учитываем общие концепции и правила
2. Берем в расчет специфику текущей задачи, конфигурации и тд
3. Добавляем ко всему это личное мнение и опыт.

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

И (я никого не заставляю думать так же) моё имхо: для общего случая вывода в расширение новых элементов формы, если там нет динамического вычисления количества элементов (например колонок) - не создавать их кодом, а сделать прям в форме.
---
Объект лучше тоже не добавлять, имхо. Добавить реквизит формы и заполнять его из реквизита объекта, а при записи наоборот - заполнять реквизит текущегообъекта из реквизита формы. Тогда в расширении получается вообще минимум заимствований, что очень хорошо.
---
Но чтобы заполнить новый реквизит объекта его надо этому объекту добавить, а это не сделать без добавления объекта в расширение.
---
Сделать, на программном уровне новый реквизит в объекте виден, проверьте.
---
Не путайте реквизит формы и реквизит объекта. Ну создали в реквизит формы, а писать вы его при закрытии формы куда будете ?
---
Не путаю, прочитайте внимательно первое моё сообщение и попробуйте его воспроизвести. Это хороший прием, чтобы не наследовать Объект формы и все связанные с реквизитами объекты метаданных. Таким образом можно наследовать только одну форму и всё. Очень рекомендую.

Обратите внимание, что в ПриЗаписиНаСервере надо писать не в Объект, а в ТекущийОбъект
---
Что писать ? В какой реквизит объекта вы запишите свои данные если у объекта нет этого реквизита ?
---
На самом деле он есть.

Допустим, добавляете в расширении реквизит1 в унаследованный документ1. Реквизиты формы, включая реквизит "Объект" не заимствуете.

В реквизите формы документа "Объект" в расширении вы добавленный реквизит1 не видите, поэтому через интерфейс связать с элементами формы не сможете. Однако программно он виден, и с ним можно работать.

Далее добавляете в форму расширения реквизитФормы1, добавляете элементы формы, ссылающиеся на этот реквизитФормы1. Заполняете его при открытии из Объект.Реквизит1. И уже с реквизитФормы1 работаете, он работает нормально.

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

Повторюсь, всё затевается для того, чтобы не наследовать реквизит формы "Объект". Эта задача успешно решена. Надеюсь, теперь стало понятней.
---
Мы просто друг друга не поняли. Я имел ввиду, что в расширение все равно придется брать объект конфигурации "документ1", чтобы дать ему реквизит. Далее нужна только форма, чтобы програмно вывести на нее новые реквизиты. Если есть типовые модули типа "модификация конфигурации" и они вызываются при создании формы, то и форму брать в расширение уже не надо, достаточно взять этот модуль и перехватить форму там.
---
Да, похоже что просто недопонимание. По поводу процедуры в типовом модуле - да, это шикарно, когда такое есть, но к сожалению не везде есть такая роскошь. Хотя 1С явно старается исправить ситуацию, и это замечательно.

Ведь самое лучшее наследование формы в расширении - когда можно не наследовать её вовсе!
---
Сообщение было скрыто модератором.
---
Сообщение было скрыто модератором.
---
Вы думаете "здесь и сейчас", забывая про обновления основной конфигурации.
Программное изменение формы - это способ поиметь минимум проблем в будущем.
Удачных вам обновлений.
PS. Уверен, что походив по граблям, вы измените свое мнение.