Принимаем конкретную строку Книга от собственной дочерней формы и добавляем её в свою таблицу, не вызывая обработчик вручную.
Где и как запускать
Модуль своей управляемой формы; клиентское событие элемента, серверная подготовка отдельно.
Подготовка
Создайте внешнюю учебную обработку с управляемой формой и запускайте в тонком клиенте (кроме отдельного мобильного урока).
Реквизиты формы: Товары (ТаблицаЗначений), Статус (Строка 200), ИтогКоличество (Число 10.0), РазрешитьУдаление (Булево), ЗапретитьСворачивание (Булево). Выведите статус, итог и оба флажка.
У таблицы Товары колонки Наименование (Строка 100), Количество (Число 10.0), Фиксирована (Булево). Имя элемента таблицы — Товары, данные / путь — Товары; разрешите интерактивное редактирование строк.
Основной обработчик назначьте указанному событию элемента Товары, не событию формы. Первый параметр Элемент уже включён в процедуру; платформа передаёт его автоматически.
Каждый урок проверяйте в отдельном варианте своей формы. Не объединяйте повторяющиеся процедуры подготовки и обработчики с одинаковыми именами.
Колонки реквизита ТаблицаЗначений создайте в редакторе реквизитов формы до добавления элемента-таблицы. На клиенте это данные формы, а не серверный объект ТаблицаЗначений.
Общие → Общие формы: создайте собственную управляемую форму УчебныйВыборТаблицы с кнопкой / командой ПередатьРезультат. Дополнительный дочерний обработчик находится только в её модуле.
В исходной форме добавьте кнопку / команду ОткрытьДочернийУрок с дополнительным обработчиком. Владельцем дочерней формы передаётся именно элемент Товары, поэтому уведомление адресуется его событию.
&НаКлиенте
Процедура ТоварыОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Новая = Товары.Добавить();
Новая.Наименование = ВыбранноеЗначение;
Новая.Количество = 1;
Сообщить("Из собственной дочерней формы добавлена: " + Новая.Наименование);
КонецПроцедурыТа же управляемая форма: отдельная серверная процедура подготовки
&НаСервере
Процедура ЗаполнитьТоварыНаСервере()
Товары.Очистить();
СтрокаТовара = Товары.Добавить();
СтрокаТовара.Наименование = "Книга";
СтрокаТовара.Количество = 2;
СтрокаТовара.Фиксирована = Ложь;
СтрокаТовара = Товары.Добавить();
СтрокаТовара.Наименование = "Ручка";
СтрокаТовара.Количество = 3;
СтрокаТовара.Фиксирована = Истина;
РазрешитьУдаление = Ложь;
ЗапретитьСворачивание = Истина;
ИтогКоличество = 5;
Статус = "Готово";
КонецПроцедурыНазначить событию формы ПриСозданииНаСервере
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ЗаполнитьТоварыНаСервере();
Сообщить("Собственная таблица подготовлена");
КонецПроцедурыИсходная форма: открыть свою дочернюю форму для таблицы
&НаКлиенте
Процедура ОткрытьДочернийУрок(Команда)
ОткрытьФорму("ОбщаяФорма.УчебныйВыборТаблицы", , Элементы.Товары);
Сообщить("Дочерняя форма открыта с владельцем-таблицей");
КонецПроцедурыДочерняя общая форма: реальное оповещение своего владельца
&НаКлиенте
Процедура ПередатьРезультат(Команда)
Сообщить("Передаём собственное значение Книга");
ОповеститьОВыборе("Книга");
Закрыть();
КонецПроцедурыРазбор по шагам
Подготавливаем настоящую собственную таблицу / список и назначаем точное событие.
Параметры после Элемент соответствуют установленной справке конкретного типа.
Принимаем конкретную строку Книга от собственной дочерней формы и добавляем её в свою таблицу, не вызывая обработчик вручную.
Как проверить результат
Откройте дочерний урок и нажмите ПередатьРезультат: в таблице одна новая Книга: 1.
Владелец дочерней формы — таблица; произвольные значения от чужих форм контрактом этого урока не предусмотрены.
Ожидаемый результат
Событие работает с собственными данными и реально заданным источником действия.
На что обратить внимание
Не вызывайте обработчики событий вручную: проверяйте указанное пользовательское действие.
События активизации, наведения, раскрытия и смены родителя не должны вызывать серверные методы формы.
Обычная и управляемая формы имеют разные API; не переносите между ними элементы и процедуры без адаптации.
Таблица значений хранит данные формы, не записывает их в регистр автоматически.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.