Всем привет!Как сделать что бы ТЗ заполнялась при выборе строки в ТЧ? Сейчас всегда заполняется ТЗ только на основании первой строки ТЧ.
В строке есть реквизит Изделие (документ), в ТЗ загружаються все подчиненные документы этого документа. При простом выборе (не редактировании) другой строки ТЧ ничего не происходит.
Не дообъяснил: на форме есть функция, она должна заполнять ТЗ, и в мобуле формы нет такого понятия ТекущаяСтрока(). Или я ошибкаюсь?
Функция ОбновитьВсех()
ВыбратьСтроки();
Если ПолучитьСтроку() = 0 Тогда
Возврат 0;
КонецЕсли;
Если ПустоеЗначение(Изделие) = 1 Тогда
Возврат 0;
КонецЕсли;
Сообщить(Изделие);
//************************************
//************************************
ТЗ.УдалитьСтроки();
Док = СоздатьОбъект("Документ");
Док.ВыбратьПодчиненныеДокументы(,,Изделие);
Пока Док.ПолучитьДокумент() = 1 Цикл
//************************************
//************************************
Если Док.Вид() = "Дсп" Тогда
ТЗ.НоваяСтрока();
ТЗ.Название = "ДСП";
ТЗ.ВидДокумента = Док.ТекущийДокумент();
//запишем в ТЗ название материала или просто пустое значение, если оного нет.
Если ПустоеЗначение(Док.Материал) = 1 Тогда
ТЗ.Материал = "";
Иначе
ТЗ.Материал = Док.Материал.Наименование;
КонецЕсли;
КонецЕсли;
потом заведи гл переменную для этого модуля, в которой храни номер текущей строки документа, и только если НомерСтроки документа <> значению твоей переменной, перезаполняй свою ТЗ на форме, переменной присваивай НомерСтроки.
(0) Чо, при каждом тыке на форме вызывается перебор всех починенных документов и перезаполнение ТЗ? Думаю надо начать с этого, а не с проблемы позиционирования.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший