В УФ не соображаю совсем.

На форму справочника "Рассылки отчетов" программно добавляю новую кнопку в расширении.
Добавленной кнопке присваиваем стандартное действие "Подключаемый_ВыполнитьКоманду(Команда)".
По этой кнопке вызывается общий модуль ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект)

Данная процедура перехватывается в расширении, и если она вызвана из нашей формы и нашей добавленной кнопки, то выполняется наш код, иначе передаётся управление стандартной обработке вне расширения.
Кнопка добавляется и вызывается. Вопросов нет.

Ситуация следующая. Пользователь открыл форму. Изменил разные реквизиты на форме, в том числе и данные таблицы, которая хранится в справочнике в табличной части "Отчеты" в реквизите "Настройки" с типом ХранилищеЗначений.
Как в общем модуле из ЭтотОбъект или Источник увидеть те данные, которые пользователь выбрал или установил в форме?

Если перед нажатием кнопки предварительно записать справочник, то в Форма.Объект и Источник изменённые данные видно, но задача без записи объекта достучатся. Нужны данные не объекта, а то, что выбрано на форме.

Если мы изменим например Наименование, то это изменение видно через Источник.
А если нужны данные табличной части "Отчеты" из реквизита "Настройки" с типом ХранилищеЗначений, которые на форме отображаются с помощью таблицы, то к нему можно достучаться только через "АдресНастроек". А по этому адресу хранятся данные, которые содержит объект, а не форма.
Упрощенно так:
ПолучитьИзВременногоХранилища(Источник.Отчеты[0].АдресНастроек);

Как можно достучаться до данных, которые пользователь видит перед глазами на форме?
---
Тебе ж сказано было - сразу смотреть элементы формы (в которых редактируются твои данные), и смотреть какие данные формы являются для этих элементов источником данных. И вот уже в них копаться.
---
В УФ не соображаю совсем. Что случится, если ты не сделаешь эту задачу?
---
Козьма Прутков, перелогинься!
---
Капитан, капитан Прутков!
---
Лишь бы не "товарищ майор"...
---
```1c
    Для Каждого Отчет из Форма.Объект.Отчеты Цикл
    АдресНастроек = Отчет.АдресНастроек;
    ПользовательскиеНастройкиКомпоновкиДанных = ПолучитьИзВременногоХранилища(АдресНастроек );
    КонецЦикла;
```
---
В теме уже написан такой вариант. Получаю данные из записанного объекта - не то что на форме.
И из формы Форма.Объект и из Источника. Результат одинаковый, так как адрес там одинаковый.
А данные на форме никуда ещё не записанные и это данные из элемента формы, а не из объекта.
реализованы параметры в виде таблицы значений на форме. Собственно до неё достучаться не знаю как.
Более того отчетов может быть несколько и этот элемент формы перерисовывается в зависимости от текущей строки.
---
А использование ДанныеФормыВЗначение() и ЗначениеВДанныеФормы() поможет?
---
Нет конечно. На форме есть переключатель и как только вы поместите значение в данные формы, он слетит. Пользователь видит одно перед глазами, а по факту значения нет - надо перевыбрать.
---
Вам же нужно "достучаться до данных, которые пользователь видит перед глазами на форме". ДанныеФормыВЗначение() не поможет?
---
может так,
на форме по кнопке
создать структуру, заполнить ее значениями реквизитов
и передать эту структуру в виде параметра в процедуру общего модуля...
---
Расширение без захвата формы - принципиально.
У нас на входе только переданная форма, команда и источник. Ничего перед тем как что-то вызвать мы делать не можем. У нас только информация на входе что есть.

Скорее всего, нет вариантов в УФ докопаться до нужной информации при такой реализации формы.
Запись данных в хранилище происходит при активизации строки табличной части отчеты. А если она одна, то ничего и не происходит.
А пока гуляем и изменяем по параметрам запись изменений никуда не помещается.

Перед записью объекта параметры помещаются, а мы его не записываем.

Вообще забавно. В 8.х есть возможность делать множество табличных частей и их можно по идентификатору связывать. А тут на тебе как один из вариантов реализации в 7.7, когда нужно несколько табличных частей, а тебя максимум одна, тогда реализуют через ЗначениеВСтроку(ТЗ) и хранят в хранилище значений.
Зачем такие сложности?
---
ДанныеФормыВЗначение() - доступно на сервере.
Как планируете форму на сервер передать?
---
Как планируете форму на сервер передать? А это как-то запрещено?
---
Не знаю. У меня при передаче формы на сервер возникает ошибка:
"Отсутствует отображение для типа ФормаКлиенскогоПриложения".
---
Это смотря как и откуда передавать. Из серверного контекста модуля формы можешь передавать спокойно.
---
У меня есть вызов тот, который есть. Он клиентский.
У меня на входе только вот это:
ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект)
---
Тады ой. На сервер можно форму передать только из модуля самой формы. По другому никак.
---
Т.е. получается что в типовых конфигурациях на сейчас не предусмотрена передача всех данных формы, которые пользователь наблюдает на форме. Какие-то передаются, а какие-то нет. Имеется ввиду с помощью программного добавления кнопок.
Очень жаль....
---
которые пользователь наблюдает на форме. Пользователь не может наблюдать на форме ХранилищеЗначений. Вопрос же в этом, да?
Но вобще -да, в клиентской части ХЗ никак не увидеть.
---
Он видит данные хранилища в другом виде, но видит и даже вводит данные. Суть задачи знать, что там пользователь наводил в механизме подключения кнопок и других диалоговых элементов.
Раз уж не сделали не в виде связанных табличных частей, а стали хранилища использовать.
---
Ну если есть интерактивная возможность что-то менять на форме - значит есть и изменяемые данные на этой же форме, доступные в клиентском контексте. В чем проблема их прочитать-то?
---
Как это сделать внутри?
ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект)
---
Посмотреть имена данных на форме и смотреть их в том модуле через ЭтотОбъект.КакоеТоИмя (для реквизитов формы) Или Объект.КакоеТоИмя (для реквизитов объекта).
Это если я правильно понимаю сумбур
---
У пациента, я так понимаю, вывих шаблона. В базе хранилище значений, которое редактируется в форме как какая-то структура данных, помогите!
---
Ещё раз. Где что посмотреть? Справочник есть в любой типовой, так как это рассылка отчетов.
---
Причем тут "любая типовая"? Вообще пофиг. Тебе тут про общее клиент-серверное взаимодействие и формы рассказывают,а не про учет надоев коров в какой-то типовой.
---
Причем тут "любая типовая"? Вообще похер.Как раз нет. Что бы долго не объяснять как что реализовано, можно в типовой посмотреть самостоятельно. Тем более что достаточно в расширении перехватить процедуру, в отладчике поставить точку останова и провалится в типовую Процедуру общего модуля.
---
При том, что в упор не вижу с такими именами ничего у переданной формы. Не понятно что искать тогда.
---
с такими именами С какими такими?
---
Если смотреть реквизиты формы, то это НастройкиТекущегоОтчета - он пуст.
Если элементы формы смотреть, то их и не будет.
Если смотреть всё что у объекта, то там данные не актуальные - не те что на форме установлены, а те что были на момент открытия формы.
Чего ещё смотреть - не понятно.
---
Найдено где актуальные данные.
Форма.КомпановщикДанныхКД.ПользовательскиеНастройки.Элементы
Но это для текущего отчета. Если несколько отчетов у рассылки, то надо будет лезть по адресу для не активного. Осталось определить какой отчет активный на форме. Что бы правильно выбирать.
---
Тебе ж сказано было - сразу смотреть элементы формы (в которых редактируются твои данные), и смотреть какие данные формы являются для этих элементов источником данных. И вот уже в них копаться.