Дело в том, что в ТаблицеЗначений на ФормаВыбора не удаётся выбрать элемент из этой таблицы. Можно лишь изменить его. Вот куда писать ОповеститьОВыборе(<ЗначениеВыбора>);? Знаю, что ещё событие нужно вещать на ФормаВыбора или на ТаблицаЗначений...
Добавлено через 29 минут и 6 секунд:Вообще сейчас примерно такая ситуация получается:
В модуле формы документа
Процедура КартриджиКартриджНачалоВыбора(Элемент, СтандартнаяОбработка)
//передаём в реквизит формы "Вызывает" параметр, чтобы знать кто её вызвал
СтандартнаяОбработка = Ложь;
ФормаВыбора = Справочники.Картриджи.ПолучитьФормуВыбора("Форма", Элемент);
Если Не ФормаВыбора.Открыта() Тогда
ФормаВыбора.МножественныйВыбор = Ложь;
ФормаВыбора.РежимВыбора = Истина;
ФормаВыбора.Вызывает = 1;
ФормаВыбора.ОткрытьМодально();
ТекущаяСтрока = ФормаВыбора.ЭлементыФормы.ТЗ.ТекущаяСтрока;
ЭлементыФормы.Картриджи.Колонки.Картридж = ТекущаяСтрока.Код;
Иначе
ФормаВыбора.Активизировать();
ФормаВыбора.МножественныйВыбор = Ложь;
ФормаВыбора.РежимВыбора = Истина;
СтандартнаяОбработка = Ложь;
КонецЕсли;
КонецПроцедуры
А в модуле ФормыВыбора так:
Процедура ПриОткрытии()
Если ЭтаФорма.Вызывает = "1" Тогда
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Картриджи.Код КАК Код,
| Картриджи.Наименование КАК Модель
|ИЗ
| Справочник.Картриджи КАК Картриджи";
Результат = Запрос.Выполнить();
ТЗ = Результат.Выгрузить();
ЭлементыФормы.ТЗ.СоздатьКолонки();
//////////////////////////////////////////////////////////////////////////////////
ИначеЕсли ЭтаФорма.Вызывает = "2" Тогда
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Картриджи.Код КАК Код,
| Картриджи.УникальныйНомерКартриджа,
| Картриджи.Наименование,
| Картриджи.ЮрЛицо.Наименование
|ИЗ
| Справочник.Картриджи КАК Картриджи";
Результат = Запрос.Выполнить();
ЭлементыФормы.ТЗ.СоздатьКолонки();
КонецЕсли
КонецПроцедуры
Процедура КоманднаяПанель1Действие1(Кнопка)
Закрыть(ЭлементыФормы.ТЗ.ТекущиеДанные.Код);
Сообщить(ЭлементыФормы.ТЗ.ТекущиеДанные.Код);
КонецПроцедуры
ЭлементыФормы.Картриджи.Колонки.Картридж = ТекущаяСтрока.Код; //здесь должно присваиваться значение поля ввода...
Добавлено через 1 час, 35 минут и 1 секунду:Процедура ПриОткрытии()
Если ЭтаФорма.Вызывает = "1" Тогда
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Картриджи.Код КАК Код,
| Картриджи.Наименование КАК Модель
|ИЗ
| Справочник.Картриджи КАК Картриджи";
Результат = Запрос.Выполнить();
ТЗ = Результат.Выгрузить();
ЭлементыФормы.ТЗ.СоздатьКолонки();
//////////////////////////////////////////////////////////////////////////////////
ИначеЕсли ЭтаФорма.Вызывает = "2" Тогда
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Картриджи.Код КАК Код,
| Картриджи.УникальныйНомерКартриджа,
| Картриджи.Наименование,
| Картриджи.ЮрЛицо.Наименование
|ИЗ
| Справочник.Картриджи КАК Картриджи";
Результат = Запрос.Выполнить();
ЭлементыФормы.ТЗ.СоздатьКолонки();
КонецЕсли
КонецПроцедуры
Процедура КоманднаяПанель1Действие1(Кнопка)
Закрыть(ЭлементыФормы.ТЗ.ТекущиеДанные.Код);
КонецПроцедуры
Оборачивай код тегами!
[code] ... [/code]Добавлено через 41 минуту и 13 секунд:Конечно, записывать значения в реквизиты табличной части наверно нужно так
ЭтотОбъект.Метаданные().ТабличныеЧасти.Картриджи.Реквизиты.Картридж = ТЗСтрока.Код;
Но ругается: Поле объекта недоступно для записи (Картридж)