Имя: Пароль:
1C
1С v8
Получение строки ТЗ по Текущей строке Таблицы на управляемой форме.
0 Rom_Kat
 
08.07.19
16:26
Проблема:

На форме две таблицы. Вторую таблицу необходимо заполнить на основании строки первой.

&НаСервере
Процедура ПоказатьСчетаПлатежаНаСервере(ТекущаяСтрока)
    
    ТЗСчетаОплаты = РеквизитФормыВЗначение("СчетаОплаты", Тип("ТаблицаЗначений"));
    ТЗСчетаОплаты.Очистить();
    
    СтрокаПоступленияДС = ПоступленияДС[ТекущаяСтрока];
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ПоступлениеНаРасчетныйСчетРасшифровкаПлатежа.СчетНаОплату КАК СчетНаОплату,
        |    ПоступлениеНаРасчетныйСчетРасшифровкаПлатежа.СуммаПлатежа КАК Сумма
        |ИЗ
        |    Документ.ПоступлениеНаРасчетныйСчет.РасшифровкаПлатежа КАК ПоступлениеНаРасчетныйСчетРасшифровкаПлатежа
        |ГДЕ
        |    ПоступлениеНаРасчетныйСчетРасшифровкаПлатежа.Ссылка = &Ссылка";
    
    Запрос.УстановитьПараметр("Ссылка", ПоступленияДС[ТекущаяСтрока].ПоступлениеНаРасчетныйСчет);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        СтрокаТЗСчетаОплаты = ТЗСчетаОплаты.Добавить();
        ЗаполнитьЗначенияСвойств(СтрокаТЗСчетаОплаты, ВыборкаДетальныеЗаписи);
    КонецЦикла;

        ЗначениеВРеквизитФормы(ТЗСчетаОплаты, "СчетаОплаты");

КонецПроцедуры

&НаКлиенте
Процедура ПоказатьСчетаПлатежа(Команда)
    ПоказатьСчетаПлатежаНаСервере(Элементы.ПоступленияДС.ТекущаяСтрока);
КонецПроцедуры

Выполнение этой команды после первого заполнения таблицы ПоступленияДС проходит нормально. После того как повторно заполняется ПоступленияДС, при выполнении команды Элементы.ПоступленияДС.ТекущаяСтрока имеют значения не соответствующие новому составу строк.
Не могу понять, что происходит. Как это настроить?
1 Александр Б
 
08.07.19
16:30
ТекущаяСтрока - это идентификатор. Поэтому получить текущую строку ТЗ необходимо получать функцией НайтиПоИдентификатору
2 Александр Б
 
08.07.19
16:30
(1) Если конкретней, то ПоступленияДС[ТекущаяСтрока] заменить на ПоступленияДС.НайтиПоИдентификатору(ТекущаяСтрока)
3 Rom_Kat
 
08.07.19
16:33
(1)пробовал

Сейчас ещё проверю.
4 Rom_Kat
 
08.07.19
16:35
(2)Правильно. Это я не везде изменил код.

Спасибо.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший