Имя: Пароль:
1C
 
Динамический список с произвольным запросом и текущая строка, как ?
0 Mr_Best
 
25.05.17
14:35
Доброго дня Коллеги !!!
Есть динамический список на форме с произвольным запросам, по некоторым причинам установить основную таблицу не получится. Запрос выбирает данные из четырех таблиц, объединяет их, сортирует и выводит. И тут мне понадобилось установить текущую строку по ссылке, но текущая строка число ! Как ? Не уж то ни как ?
1 Wirtuozzz
 
25.05.17
14:38
(0) может это индекс строки списка?
2 Mr_Best
 
25.05.17
14:40
Если вы про текущую строку, и про то что у нее тип число, то да, это номер строки списка отображенной на форме. Но мне же нужно установить по ссылке, и как сие возможно ?
3 Вафель
 
25.05.17
14:43
Список.НайтиПоИдентификатору(ТекущаяСтрока)
4 Wirtuozzz
 
25.05.17
14:44
(2) Так в чем проблема? Есть индекс, он создан что бы по нему искать.
5 Mr_Best
 
25.05.17
14:44
(3) не катит для динамического списка, у него всего два метода

Методы:

ПолучитьОбязательноеИспользование (GetRequiredUse)
УстановитьОбязательноеИспользование (SetRequiredUse)

Это работает с таблицей значения
6 Mr_Best
 
25.05.17
14:45
(4) проблема в том, что индекс на клиенте, а на клиенте только порция данных, а если моя ссылке не в этой порции ?
7 ildary
 
25.05.17
14:49
(0) есть решение для такого дин. списка. Оно не блещет красотой и производительностью, но - работает.

Функция   СтрокиДСНаСервере( ТекДок )
        
    Схема = ЭтаФорма.Элементы.Заказы.ПолучитьИсполняемуюСхемуКомпоновкиДанных();
    Настройки = ЭтаФорма.Элементы.Заказы.ПолучитьИсполняемыеНастройкиКомпоновкиДанных();

    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных();
    МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки, , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
                            
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);

    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;

    СтрокиДС = ПроцессорВывода.Вывести(ПроцессорКомпоновки);
    
    ТекСтр = Неопределено;
    
    Для Каждого Стр Из СтрокиДС Цикл
        
        Если Стр.Заказ = ТекДок Тогда
            
            ТекСтр = СтрокиДС.Индекс( Стр );
            Прервать;
            
        КонецЕсли;
        
    КонецЦикла;
    
    Возврат ТекСтр;
    
КонецФункции

&НаКлиенте
Процедура ДСУстановитьТекСтр( ТекСсылка )
    
    Если Не ЗначениеЗаполнено( ТекСсылка ) Тогда //Возврат
        Возврат;
    КонецЕсли;
    
    ТекСтр = СтрокиДСНаСервере( ТекСсылка );
    Если ТекСтр = Неопределено Тогда //Возврат
        Возврат;
    КонецЕсли;

    ЭтаФорма.Элементы.Заказы.ТекущаяСтрока = ТекСтр + 1;
    
КонецПроцедуры

Вызов: ДСУстановитьТекСтр( ТекДок );
8 ildary
 
25.05.17
14:50
Забыл уточнить - работает с 8.3.5 (или 8.3.6, уже не помню).
9 Wirtuozzz
 
25.05.17
14:51
(6) Не хватает возможностей клиента, проверь на сервере, чудес не бывает.
10 Fragster
 
гуру
25.05.17
14:54
заменить ДС на таблицу
11 Mr_Best
 
25.05.17
14:54
(7) спасибо за хорошую идею, попробую
(9) это зависит от того кто делает в том числе, просто криворукие инженеры 1с на это "лень" забили и не парятся.
12 ildary
 
25.05.17
14:55
(11) идея не моя, я сам взял ее то ли отсюда, то ли с неназываемого форума.
13 Mr_Best
 
25.05.17
14:55
(9) типа мы знаем лучше, что вам не надо и что надо. Ведь 1С не для этого сделана, не нравится идите на ... другую платформу. Вот и вся их идеология.
14 Wirtuozzz
 
25.05.17
15:01
(13) Нормальная идеология, все тут сидят с работой сидят, жаловаться не нужно. Если 1с сделает все что от них просят, то мы пойдем все в другую профессию.
15 Mr_Best
 
25.05.17
15:05
(13) ах-ха-ха, так вот чего они боятся !!!
16 Mr_Best
 
25.05.17
15:05
(13) -> (14)
17 Масянька
 
25.05.17
15:33
(14) Странно, что данная идеология не катит для российского автопрома.
18 Mr_Best
 
25.05.17
15:48
(17) Тут скорее дело в том, что если 1С станет функциональнее (и сложнее), тогда люди зададутся вопросом, а зачем вообще 1С, есть же аналоги (быстрее, не глючнее и т.д.) ? Сила 1С только в некоторых конфигурациях и быстрой поддержке, ИМХО. Если бы кто-то распространял аналогичную конфигурацию по бухгалтерии например на си шарпе с открытым исходным котом, послали бы 1С ко всем чертям
19 Mr_Best
 
25.05.17
15:49
(18) вопрос в том, возможно ли это в обществе, где за каждым углом воруют интеллектуальную собственность ? :)))