Имя: Пароль:
1C
 
Как подсветить строки в динамическом списке, которые есть в таблице значений?
0 DTX 4th
 
04.05.17
17:13
Есть динамический список и таблица значений, в которой хранятся ссылки из списка. Хотелось бы, чтобы было видно, что уже выбрано из списка в таблицу. Как это лучше организовать?

Вижу пока два варианта.
1) ПриПолученииДанныхДС
2) Использовать условное оформление, подменять запрос у ДС, привязывать к нему параметр.
Первый вариант, думаю, будет логичнее. Я прав?
1 polosov
 
04.05.17
17:29
(0) Можно попробовать ТЗ передавать в запрос в качестве временной таблицы, потом с ней соединяться и выводить признак.  По нему условно оформлять. Только версия платформы должна быть с поддержкой ВТ в ДС.
2 Buster007
 
04.05.17
18:42
А если добавить в список свой реквизит и заполнять его при выборе, например, в Истина и условное оформление по этому полю
3 breezee
 
04.05.17
19:04
(0) С помощью условного оформления попробуй. Для этого ТЗ тоже придется на динамический список заменить. Сейчас, вроде, такое можно(Сейчас вообще что угодно можно))
4 DTX 4th
 
05.05.17
10:16
(3) ТЗ вот уж точно не хотелось бы менять на ДС:)
На форме есть два ДС и одна ТЗ, в которую складываются элементы списков.
>Сейчас вообще что угодно можно
Это да. Остаётся правильный способ найти)

(2) Звучит странно. В списке можно что-то заполнять?

(1) Не быстрее ли (в плане производительности) использовать ПриПолученииДанныхНаСервере списка?
5 Вафель
 
05.05.17
10:19
(0) а у тебя уже 10 версия?
6 Вафель
 
05.05.17
10:19
Можено еще параметр передавать Список, и полу если в списке то истина
7 DTX 4th
 
05.05.17
10:22
(5) У меня да, у остальных 8.3.9 :)
А что в 10 версии?
8 Buster007
 
05.05.17
10:26
(4) я не проверял, но мало ли )
9 polosov
 
05.05.17
10:27
(7) ПриПолученииДанныхНаСервере с 8.3.10.2168
10 DTX 4th
 
05.05.17
10:39
Понял, спс.
Последний вопрос)
Как передавать ТЗ в запрос ДС в качестве временной таблицы?
11 Buster007
 
05.05.17
10:42
(10) а массив нельзя передать? Зачем тебе обязательно ТЗ?
12 DTX 4th
 
05.05.17
10:43
(11) Да я наверн ПриПолученииДанныхНаСервере сделаю.
Про ВТ мне для общего развития скорее :)
13 polosov
 
05.05.17
10:46
(11) Массив не соединишь.
14 DTX 4th
 
05.05.17
10:58
(13) Т.е. думаешь, что соединять быстрее платформа сможет, чем (Ссылка В (&Ссылки))
15 polosov
 
05.05.17
11:03
16 polosov
 
05.05.17
11:05
(14) И не совсем представляю себе как ты каждую строку будешь проверять на вхождение и выставлять при этом признак того, что входит/не входит для условного оформления.
17 Юрий Лазаренко
 
05.05.17
11:11
(16)

    ВЫБОР
        КОГДА СправочникКэнРендерСтилиЭлементовВебФормы.Ссылка В (&МассивВыделенныхСтилей)
            ТОГДА ИСТИНА
        ИНАЧЕ ЛОЖЬ
    КОНЕЦ КАК Выгружать

Если ИСТИНА, значит значение входит в массив. Для строки устанавливаем условное оформление в зависимости от значения в поле "Выгружать".
18 DTX 4th
 
05.05.17
11:23
(15) Групповой то оператор при чем?) Обычный же подходит, как в (17)
19 Вафель
 
05.05.17
11:23
(17) Сейчас можно просто
СправочникКэнРендерСтилиЭлементовВебФормы.Ссылка В (&МассивВыделенныхСтилей) КАК Выгружать
20 polosov
 
05.05.17
11:27
(17) Очень оптимальненько.
Запросом в цикле попахивает.
(18)Это я тебе скинул, чтобы ты раздел "Замечания о скорости выполнения" поглядел.
21 DTX 4th
 
05.05.17
11:32
(20) Так там замечания по групповому оператору, у нас обычный, который должен быть быстрым.
22 Вафель
 
05.05.17
11:34
(20) ты вообще представляешь как скл выполняет запросы?
23 polosov
 
05.05.17
11:35
(21) Сделай с ВТ и с В(&) посмотри какой план запроса будеи и стоимость на одних и тех же наборах.
Я вообще за ВТ, ибо IN тяжеловат.
(22) Уж получше тебя похоже.
24 Юрий Лазаренко
 
05.05.17
11:36
(19) Это было два года назад и пока пусть так остается для совместимости, некоторые клиенты сидят на древних платформах.
25 polosov
 
05.05.17
11:37
Не я понимаю что МС Скл может построить оптимальный план. Но иногда запросы с IN применяемым к строкам оптимизатор превращает в жуткую буйню.
26 Юрий Лазаренко
 
05.05.17
11:39
(20) Сфигали вдруг запрос в цикле? Изначально массив формируется один раз при открытии формы. Далее при добавлении/удалении элементов для выбора ссылки на них в массив добавляются или убираются, флажок "Выгружать" меняется для конкретной строки ДС.
27 polosov
 
05.05.17
11:44
(26) IN применяемый к каждой строке набора данных.
К каждой строке.
К КАЖДОЙ!!!
28 polosov
 
05.05.17
11:45
+(26) Хотя конечно, может это просто микросекунды разницы по сравнению с лефт джоином.
29 Вафель
 
05.05.17
11:46
(28) Так джойн тоже может быть через нестед лукап
30 polosov
 
05.05.17
11:47
+(28) Ну и конечно же в паре с Select'ом. Даже в (19)
31 Юрий Лазаренко
 
05.05.17
11:48
(27) Ну так их же там не миллион. И применяется только к отображаемым строкам. Я не спорю с тем, что джойн может быть оптимальнее, но если выигрыш реально в микросекундах, то есть ли смысл?
32 polosov
 
05.05.17
11:52
(29) Да вроде не должно. Условие связи простое.
(31) Да эт понятно.
33 Вафель
 
05.05.17
11:56
(32) А какой вариант будет мердж джойн чтоли?
34 1Снеговик
 
гуру
05.05.17
11:56
Второй вариант единственный, если УФ и не 8.3.10
35 DTX 4th
 
05.05.17
12:01
Так строку то тоже каждую джойнить надо?

Сравнил ща два запроса тупо в консоли:

ВЫБРАТЬ ПЕРВЫЕ 5
    РеализацияТоваровУслуг.Ссылка КАК Ссылка
ПОМЕСТИТЬ ВТ
ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
    РеализацияТоваровУслуг.Дата >= &Дата
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    РеализацияТоваровУслуг.Ссылка,
    ВТ.Ссылка КАК Ссылка1,
    ВТ.Ссылка ЕСТЬ NULL  КАК Поле1
ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ КАК ВТ
        ПО ВТ.Ссылка = РеализацияТоваровУслуг.Ссылка

УПОРЯДОЧИТЬ ПО
    Поле1 УБЫВ

и

ВЫБРАТЬ
    РеализацияТоваровУслуг.Ссылка,
    Ссылка В (&Ссылки)  КАК Поле1
ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг

УПОРЯДОЧИТЬ ПО
    Поле1 УБЫВ


100000 строк, второй чуть быстрее на 5-15% (0.45с против 0.55с примерно)
36 polosov
 
05.05.17
12:02
(33) А что мешает? В любом случае лучше проверить на конкретной БД и СУБД.
37 polosov
 
05.05.17
12:03
(35) Ойвей.

А ПЕРВЫЕ 5 у тебя бесплатно что ли получаются?
38 DTX 4th
 
05.05.17
12:13
(37) Да почти бесплатно.
Ладно, без кэша чуть подольше. 0.010 - 0.025
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс