Имя: Пароль:
1C
1С v8
Установить текущую строку в Динамическом списке
,
0 kisskiss
 
07.10.13
13:10
Есть ДинамическийСписок в качестве реквизита формы.
Динамический список не имеет основной таблицы, формируется запросом.
У него есть колонка Ссылка (на элемент справочника "А"). С динамическим  связана ТаблицаФормы.
Мне нужно из открытого элемента справочника "А" перейти в ТаблицуФормы и спозиционироваться на моей Ссылке. ЭлементыФормы.ТаблицаФормы.ТекущаяСтрока = Ссылка; - не работает
1 kiruha
 
07.10.13
13:27
>>Если устанавливаемое значение не является допустимым (такое значение отсутствует) для данной таблицы, то такая установка игнорируется
2 lapinio
 
07.10.13
13:33
1 Вариант
ОткрытьФорму("ФормаСписка",Новый Структура("ТекущаяСтрока",Ссылка));
2 вариант
ОткрытьЗначение(Ссылка);
3 kiruha
 
07.10.13
13:35
У нее динамический список

>>В качестве значений для свойств ТекущаяСтрока, ТекущийРодитель и элемента коллекции, содержащейся в свойстве ВыделенныеСтроки, используются значения ссылок на объекты, которые содержит главная таблица динамического списка. Например, СправочникСсылка.Товары. Также эти свойства могут содержать значения типа СтрокаГруппировкиДинамическогоСписка.
Если главная таблица не задана или является виртуальной таблицей регистра, в качестве значений будут использоваться числа, являющееся идентификаторами строки в выборке динамического списка.
4 kosts
 
07.10.13
13:39
(3) > использоваться числа, являющееся идентификаторами строки
Осталось определить эти числа по ссылке.
5 kiruha
 
07.10.13
14:07
Если бы автор сообщила тип значения ЭлементыФормы.ТаблицаФормы.ТекущаяСтрока можно было бы не гадать
6 kisskiss
 
07.10.13
14:12
(5) Число
7 kisskiss
 
07.10.13
14:14
(4) Если бы был не ДинамическийСписок, а ДанныеФормыКоллекция, определить число (Идентификатор строки) по ссылке было бы просто, а в моей ситуации - непонятно как....
8 kisskiss
 
07.10.13
14:17
(2)
1. У меня не ФормаСписка, у меня сложная форма, с кучей динамических списков
2. Совсем не то. То что ты написал, это для открытия ссылки
9 kiruha
 
07.10.13
14:31
(6)
Ну и как ты собираешься числу ссылку присвоить ?

Нужно задать главную таблицу а уж к ней все остальное
10 kisskiss
 
07.10.13
14:31
SOS
11 kisskiss
 
07.10.13
14:33
(9) да....
это нормальная ситуация, когда ТекущаяСтрока - не ссылка, а число (число - это идентификатор строки). Главную таблицу я не могу задать, потому что у меня динамический список из нескольких таблиц собирается
12 kisskiss
 
07.10.13
14:34
Единственный вопрос, это для моей Ссылки получить ее идентификатор в таблице ?
13 kiruha
 
07.10.13
14:37
(11)
Основная таблица должна быть одна, неосновных можно много и дожно быть уникальность по ссылке основной таблицы - иначе как платформа узнает как ей по твоей ссылке на какую строку встать ?
14 kiruha
 
07.10.13
14:42
Кнопочка Настройка списка - открыть - ввести текст запроса в свойстве Основная таблица внести таблицу
15 MSII
 
07.10.13
14:56
(12) Как ты собираешься получить идентификатор из ссылки, если идентификатор должен быть уникален, а ссылки у тебя могут повторяться? Это антинаучно! :)
16 PiVa123
 
07.10.13
15:03
(13) КРоме кривоколенного кода - нифига не получается, я уже как-то думал по этому поводу и тоже ничего внятного не нашел.
Метод - ДанныеСтроки - доступен только на клиенте



&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    Клиент=Справочники.Контрагенты.НайтиПоКоду("00-000028");
    
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    
    ТекСтр=Неопределено;
    сч=0;
    Пока Истина Цикл
        сч=сч+1;
        Данные=Элементы.Список.ДанныеСтроки(сч);
        Если Данные=Неопределено Тогда
            Прервать;
        КонецЕсли;
        
        Если Данные.Ссылка=Клиент Тогда
            ТекСтр=сч;
            Прервать;
        КонецЕсли;
        
    КонецЦикла;
    
    Если Не ТекСтр = Неопределено Тогда
        Элементы.Список.ТекущаяСтрока=ТекСтр;
    КонецЕсли;
    
КонецПроцедуры

17 kisskiss
 
07.10.13
15:07
(15) Ну в моем случае не могут.
(13) хихи, думала о чем то таком, но решили отказаться
(14) Установила программно основную таблицу, хотя изначально ее не было преднамеренно. Теперь текущая строка - не число, а ссылка и ее можно спокойно устанавливать, не получая идентификатора. Не совсем то что я хотела, пришлось отказаться от объединения запросов в динамическом списке, но зато работает.
18 PiVa123
 
07.10.13
15:10
(16) в догонку - при обновлении номериндетификатора меняется постоянно, так что это дерьмовый метод, но для списков с произвольным запросом без основной таблицы, я другого способа ПОКА не знаю.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс