Чтобы при закрытии формы возвращалось значение, надо в параметрах метода Закрыть() указать нужное значение, например Закрыть(Объект.Ссылка);.
Если форму можно закрыть разными методами (кнопка "Выбор", "Закрыть", "Отмена" и т.д.), а возвращать какое-то значение надо всегда, тогда в процедуру формы ПриЗакрытии() надо добавит метод ОповеститьОВыборе(<значение>), например ОповеститьОВыборе(Объект.Ссылка);
Для того, чтобы на форме списка, при добавлении полей в отборе ("Все действия / Настроит список / Отбор") эти поля автоматически добавлялись на форму списка, надо у элемента списка заполнить свойство "Группа пользовательских настроек". В этом свойстве надо указать группу, в которую будут добавляться поля и условия отбора.
У данного метода я нашел 2 неудобства:
если в условии отбора стоит "Равно", то оно автоматически не отображается. Метод борьбы с этим безобразием можно посмотреть здесь: https://infostart.ru/1c/articles/839438/
если в группе есть другие элементы, то они автоматически удаляются с формы, т.е. группа должна быть пустой.
Для того, чтобы на форме владельца при раскрытии списка выбора отображались только подчиненные элементы, надо у элемента формы настроить свойство СвязиПараметровВыбора. В этом случае, при открытии формы списка в параметры формы передается значение отбора, в частности Владелец. В качестве реквизита может выступать не только Объект.Ссылка, но и любой другой реквизит элемента справочника, что делает настройку более гибкой.
Аналогичное свойство есть у реквизита справочника. Если его заполнить,то связь параметров выбора будет работать на всех формах справочника.
Виды форм отличаются основным реквизитом. Например у формы элемента справочника основной реквизит «Объект» типа СправочникОбъект. У произвольной формы нет основного реквизита.
Форма списка и форма выбора идентичны. У них основной реквизит типа «Динамический список». Они отличаются только свойством «Режим выбора» табличного элемента «Список». Если это свойство = Истина, то в панели инструментов списка появляется кнопка «Выбор».
Формы элемента и формы группы создаются на основании заполнения свойства «Использование» реквизита справочника. Если свойство = «Для элемента» или «Для группы и элемента», то элемент будет автоматически размещен на форме элемента. Если равен «Для группы» или «Для группы и элемента», то элемент будет автоматически размещен на форме группы. Так же формы будут различаться свойством «ИспользованиеДляГруппИЭлементов».
Можно сделать форму и для элемента и для группы, но это целесообразно делать только если все реквизиты используются и для элементов и для групп.
Блокировку части строк можно сделать с помощью условного форматирования. По определенному условию выставляем ТолькоПросмотр = Истина. Этот метод работает построчно.
Блокировку можно установить программно и в конфигураторе.
У меня не получилось ни удаление настроек из ХранилищеСистемныхНастроек, ни отключение свойства "РастягиватьПоВертикали" у элементов.
Пришлось смириться с одинаковым размером самой формы, и менять только видимость элементов. Чтобы форма не разъезжалась пришлось жестко задать размеры формы.
Для того, чтобы программно в таблице выделить нужную строку надо &НаКлиенте у элемента формы Таблица установить реквизит ТекущаяСтрока. Это числовой реквизит, но он не равен номеру строки в таблице. Чтобы его получить, надо использовать метод ПолучитьИдентификатор() для нужной строки.
Для обновления динамического списка после добавления объекта, который должен попасть в этот список, можно выполнить процедуру ОповеститьОбИзменении(<Ссылка>) или ОповеститьОбИзменении(<ИзмененныйТип>). В первом случае создается оповещение для динамического списка для обновления по объекту, во втором по типу объектов
Например ОповеститьОбИзменении(Тип("ДокументСсылка.ИнвентаризацияРасчетовСАбонентами"));