Статья не новая, попытку номер 1 я уже описывал, поэтому очередность в обратном порядке, возможно скоро появится и следующие попытки.
ПОПЫТКА номер 2.
В расширении в общих формах создал форму-шаблон с определенными настройками. Теперь когда мне нужно изменить форму, я добавляю объект в расширение. при необходимости реквизиты (ТЧ), копирую общую форму-шаблон в формы этого объекта, назначаю тип основному реквизиту, настраиваю форму как мне нужно. На форме у меня нет никаких кнопок, идея такая, при редактировании реквизитов в режиме предприятия, из формы-шаблона данные основного реквизита формы переносятся в основной реквизит формы основной конфигурации, для этого я подключаю обработчик ожидания к форме-шаблону, который в свою очередь с помощью метода КопироватьДанныеФормы переносит данные (записи объекта не происходит). Вот мой код формы-шаблона
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
#Область ШаблонДополнительнойФормы
МетаданныеОбъекта = Параметры.Ключ.Метаданные();
ПолноеИмяОбъекта = МетаданныеОбъекта.ПолноеИмя();
СохраненныеНастройки = РасширениеФорм_ОбщегоНазначения.ЗагрузитьОбщиеНастройки(ПолноеИмяОбъекта);
ОсновнойРеквизитФормы = РасширениеФорм_ОбщегоНазначения.ПолучитьОсновнойРеквизит(СохраненныеНастройки);
#КонецОбласти
КонецПроцедуры
#Область ШаблонДополнительнойФормы
&НаКлиенте
Процедура Настройка(Команда)
ШаблонЗаголовка = НСтр("ru='Настройка расширения формы'");
ТекстЗаголовка = ШаблонЗаголовка;
//ТекстЗаголовка = СтрШаблон(ШаблонЗаголовка, ПолноеИмяОбъекта);
ДанныеВладельца = Неопределено;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ПолноеИмяОбъекта", ПолноеИмяОбъекта);
ПараметрыФормы.Вставить("ЗаголовокФормы", ТекстЗаголовка);
ДопПараметры = РасширениеФорм_ОбщегоНазначенияКлиент.ПодготовитьПарамтрыУниверсальнойФормы(ВладелецФормы.Параметры.Ключ, ВладелецФормы);
ОповещениеОВыборе = Новый ОписаниеОповещения("ФормаНастройкиПослеВыбора", ЭтаФорма, ДопПараметры);
ОткрытьФорму("ОбщаяФорма.РасширениеФорм_ФормаНастройки",
ПараметрыФормы,
,
,
,
,
ОповещениеОВыборе,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ФормаНастройкиПослеВыбора(РезультатВыбора, ДопПараметры) Экспорт
//ЗаполнитьЗначенияСвойств(Параметры, ДопПараметры);
Если РезультатВыбора <> Неопределено Тогда
ИмяФормыРасширения = РасширениеФорм_ОбщегоНазначения.ПолучитьИмяФормы(ДопПараметры);
ОткрытьФорму(ИмяФормыРасширения,
ДопПараметры,
ВладелецФормы,
,
ВладелецФормы.Окно,
ВладелецФормы.НавигационнаяСсылка,
,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ПодключитьОбработчикОжидания("ОбновитьДанныеФормыВладельца", 1, Ложь);
ДопПараметры = РасширениеФорм_ОбщегоНазначенияКлиент.ПодготовитьПарамтрыУниверсальнойФормы(ВладелецФормы.Параметры.Ключ, ВладелецФормы);
ОсновнойРеквизитФормы = РасширениеФорм_ОбщегоНазначенияКлиент.ПодготовитьДанныеФормыВлвдельца(ДопПараметры, ВладелецФормы, ОсновнойРеквизитФормы);
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьДанныеФормыВладельца()
Если Модифицированность Тогда
КопироватьДанныеФормы(Объект, ВладелецФормы[ОсновнойРеквизитФормы]);
ВладелецФормы.Модифицированность = Истина;
Модифицированность = Ложь;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
Пример использования заимствованной формы и формы-шаблона
ПОПЫТКА номер 1.
Дополнения от 13.09.2024
- Для ТЧ добавлена возможность добавлять, удалять строки.
- Добавлена возможность настраивать формы для "Планы видов расчета".
- Настройка видимости по пользователям.
- Задавать Имя основного реквизита формы основной конфигурации
Краткая инструкция на примере добавленных реквизитов в документ "Поступления на расчетный счет" конфигурации "Бухгалтерия предприятия, редакция 3.0 БИТ.ФИНАНС 3.1"
- Добавим расширение. (не знаете как, используйте поиск по сайту)
- Настройка расширения под конкретную конфигурацию. Добавляем объекты в расширение и настраиваем общую команду.
в результате на панели действий формы должна появиться ссылка "Расширение формы"
- Настройка формы. Можно добавить реквизиты, стандартные реквизиты, реквизиты ТЧ. (каждый объект настраивается отдельно, настройки сохраняются для всех пользователей)
в результате расширенная форма стала выглядеть так,
При редактировании данные формы расширения переносятся в основную форму.
Данная форма имеет ограниченный функционал и не является заменой основной формы, рекомендуется к использованию для редактирования реквизитов не отображенных на основной форме. ВНИМАНИЕ: При повторной активации навигационной ссылки "Расширение формы…" данные формы автоматически не обновляются.
Если в открытой форме объекта уже была активирована ссылка расширения, изменения в основной форме не отобразятся в расширении, используйте кнопку обновления.
Важно — имя основного реквизита формы объекта (формы, которую расширяем) обязательно должно быть "Объект".
Предполагаю, что должно работать на любой конфигурации (не проверял), разрабатывал на платформе 1С:Предприятие 8.3 (8.3.13.1809).