Имя: Пароль:
1C
 
Реквизит (Список значений) как параметр для динамического списка
0 PiotrLoginov
 
23.04.15
19:14
Здрасте всем.
УФ. Имеется реквизит Список (Динамический список) со следующим запросом:

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


...  и реквизит ВыбранныеСсылки (список значений, тип значения ДокументСсылка.ЗаказКлиента), который заполняется ПриСозданииНасервере:


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


В итоге при открытии формы в колонке Ссылка1 вижу только лишь ссылку из самого первого элемента списка значений. ЧЯДНТ ?
1 PiotrLoginov
 
23.04.15
19:22
Если проще: в запросе параметр - список значений. Запрос "видит" только первое значение из списка значений, хотя их там много. С чем это может быть связано? Мб список значений, хранящийся в реквизите упр. формы, требует какой-то особой настройки, о которой я не знаю?
2 PiotrLoginov
 
23.04.15
19:44
Попытался изменить свойство этого параметра ДоступенСписокЗначений. Однако, свойство - только для чтения. Как же правильно изменить это свойство у параметра динамического списка на УФ в 8.3 ?  Мб кто-нибудь знает ?
3 DrShad
 
23.04.15
19:59
Если по правде то делать надо отбор, а вообще запрос ДС полный бред
4 PiotrLoginov
 
23.04.15
20:05
Запрос - тестовый.  Пока не пойму, как правильно использовать ДС.

Отбор? А параметр в ДС - это табу?
5 DrShad
 
23.04.15
20:08
Ну не то чтобы табу, но некошерно, да и в тестовых целях мега адский запрос
6 PiotrLoginov
 
23.04.15
20:22
мне потом надо будет в определенной колонке выводить значения, зависящие от содержимого определенного реквизита формы.  Не уверен, что тут подойдет отбор.  Параметр бы...


Пошел по такому пути:  создал макет - схему с нужными настройками и параметром, у которого установил "ДоступенСписокЗначений".  ПриСозданииНаСервере "получил" эту схему и загрузил в компоновщик её НастройкиПоУмолчанию.  Не помогло.
7 DrShad
 
23.04.15
20:32
Задачу бы описал может и помогли бы
8 PiotrLoginov
 
23.04.15
20:33
Загрузил в компоновщик из макета-схемы настройки основного варианта:

СхемаКомпоновки.ВариантыНастроек.Основной.Настройки


не помогло.  Штудирую СП. должен же быть способ настроить параметр ДС таким, каким он мне нужен
9 PiotrLoginov
 
23.04.15
20:36
(7) задача - в определенной колонке выводить значения, зависящие от содержимого определенного реквизита формы. Что тут можно добавить?

Будет реквизит на форме - список со ссылками на заказы.  Заполнив список, пользователь должен увидеть, что в строках с заказами определенные заказы получили определенные значения в предназначенной для этого колонке.
10 PiotrLoginov
 
23.04.15
20:36
* определенные заказы = определенные строки
11 DrShad
 
23.04.15
20:40
Ни фига не понять
12 PiotrLoginov
 
23.04.15
20:50
ну вот как вариант:  перед пользователем список заказов.  На форме реквизит - ссылка на справочник Менеджеры. Выбираем одного менеджера - и в списке подсвечиваются специальным цветом строки с заказами, которыми занимается этот менеджер. А подсвечиваются потому, что в условном оформлении настроено, чтобы строки, у которых определенное поле равно 1, подсвечивались этим цветом.  А значение этому полю (колонке списка) задается в запросе исходя из переданной в запрос ссылки на элемент справочника менеджеры.
13 PiotrLoginov
 
23.04.15
20:53
только пользователь будет выбирать не одного из менеджеров, а нескольких сразу.  Обычное дело. И хотелось бы это реализовать динамическим списком. Да и вообще понять, как настраивать параметры в СКД программно. Думал, все просто. Оказалось, надо еще попросвещаться.
14 Drac0
 
23.04.15
21:00
(12) Успользуй Условное оформление списка.
15 Drac0
 
23.04.15
21:01
+(14) а за соединение таблицы самой с собой в ДС надо пороть розгами.
16 Drac0
 
23.04.15
21:04
(13) Да и задача твоя сводится не к выделению строк, а к нормальному отбору. Если пользователю нужна инфа по заказам конкретных менеджеров, то зачем ему остальные сотни и тысячи документов в списке?
17 PiotrLoginov
 
23.04.15
21:09
(14) само собой

(15) я же писал - запрос тестовый. Никто так два раза одну таблицу юзать не будет

(16)  ну началось ... на зачемп тебе это надо.. да пользователю это не надо.  Ну а если надо, и надо будет в томили ином варианте еще не раз, что тогда?

Пока набросал такое:

    СхемаКомпоновки = РеквизитФормыВЗначение("ЭтаОбработка").ПолучитьМакетОбработки("СхемаДляСпискаЗаказов");
    КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
    КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновки));
    КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновки.ВариантыНастроек.Основной.Настройки);


И в итоге в получившемся компоновщике настроек  вижу искомый параметр в нужном виде.  Как бы теперь еще этот компоновщик или его настройки прилепить к своему ДС...
18 DrShad
 
23.04.15
21:11
а как ты в свой ДС параметр передаешь?
19 Drac0
 
23.04.15
21:15
(17) "само собой "

Похоже, что ни разу не само собой. У тебя должно быть условие Ссылка В СПИСКЕ ТвойСписок. Зачем запрос курочить?

Если хочешь параметр поставить,то надо ЭтотОбъект.Список.Параметры.УСтановить("ВыбранныеСсылки", ТвойСписок). А ты куда пошел?
20 PiotrLoginov
 
23.04.15
21:18
(18) Список.Параметры.УстановитьЗначениеПараметра("ВыбранныеСсылки", ВыбранныеСсылки)


(19) да уж похоже...

установить-то можно.  Только чтобы список значений установить, надо, чтобы у параметра свойство ДоступенСписокЗначений было Истиной
21 Drac0
 
23.04.15
21:20
(20) 0_о Какое свойство у параметра ДС?
22 PiotrLoginov
 
23.04.15
21:22
(21)  какое свойство?
23 PiotrLoginov
 
23.04.15
21:25
ДоступныйПараметрКомпоновкиДанных , свойство ДоступенСписокЗначений


народ, ну подскажите уже, кто знает, как запихнуть в параметр не одно значение, а список.  Уже все испробовал.  Если что, компоновщик с настройками, где параметр уже в нужном виде и в настройках, и в фиксированных настройках - имеется. Как его настройки применить на компоновщик настроек моего ДС?
24 Drac0
 
23.04.15
21:26
(23) Ты зачем макет СКД и Динамический список смешиваешь? Что у тебя за каша в голове?
25 PiotrLoginov
 
23.04.15
21:29
(24) да я как бы не претендую на правильность действий .  Мне бы подсказку, как правильно.
26 Drac0
 
23.04.15
21:38
(25) Открой любую типовую, там форму списка справочника или документа и смотри. Макет СКД вообще здесь не при делах,работай только с динамическим списком и формой.
27 PiotrLoginov
 
24.04.15
10:21
(26) Дык я как бы с этого и начинал. Открыл те же Заказы в УТ 11.1 и смотрел. Но там не реализовано то, что мне надо. Соответственно и параметры там без возможности задавать список значений.

Очень бы хотелось, чтобы среди рассказчиков про каши и типовые примеры нашелся форумчанин, действительно знающий, как управлять параметрами динамического списка.
28 1Сергей
 
24.04.15
10:25
(0) перенеси
(ВыбранныеЗаказы.Ссылка В (&ВыбранныеСсылки))
в секцию ГДЕ
29 PiotrLoginov
 
24.04.15
10:28
(28) тогда условие распространится на всю таблицу, а мне надо, чтобы в таблице остались и Заказы, ссылок на которые нет в &ВыбранныеСсылки

Проблема не запросе.  Запрос тестовый.  Проблема в неумении передавать в динамический список сразу несколько значений в качестве одного параметра.

А хотелось бы, т.к. понадобится еще не раз.
30 Drac0
 
24.04.15
10:31
(27) У тебя НЕ ПАРАМЕТР ДС, твоя задача решается только условным оформлением ДС.
31 Drac0
 
24.04.15
10:35
(29) " Проблема в неумении передавать в динамический список сразу несколько значений в качестве одного параметра. "

Тебе уже несколько раз объяснили, что в качестве параметра просто передается список значений с помощью Список.Параметры.УстановитьЗначениеПараметра("ВыбранныеСсылки",ТвойГребаныйСписокЗначений);
32 Timon1405
 
24.04.15
10:37
МассивВыбранныхСсылок = ВыбранныеСсылки.ВыгрузитьЗначения();
Список.Параметры.УстановитьЗначениеПараметра("ВыбранныеСсылки", МассивВыбранныхСсылок)
33 PiotrLoginov
 
24.04.15
10:40
(31) (32) см. (18) -> (20)

Если б это работало, этой темы вообще тут не было бы
34 PiotrLoginov
 
24.04.15
10:42
(30) Здрасте, приехали. Как можно в настройке условного оформления привязаться к содержимому реквизита, если реквизит - Список значений?  У кого еще каша...
35 Timon1405
 
24.04.15
10:45
(33) УТ11 ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка
36 Drac0
 
24.04.15
10:52
(34) А зачем реквизит? Добавляешь через настройки списка условное оформление. Пользователь открывает Настроить список и заполняет значения. Если хочешь реквизит, то при изменении его программно меняешь условное оформление. В чем проблема-то?
37 PiotrLoginov
 
24.04.15
10:53
(35) Ну и? Установить значение - не проблема. Но запрос "видит" только первое значение из установленного списка значений. Я же написал в (1)
38 PiotrLoginov
 
24.04.15
10:58
(36) При настройке условного оформления в условии я что должен указать?  Это вообще тупик. так можно экспериментировать часами, пытаясь решить задачу обходными путями. Даже если это удастся, необходимость передавать параметры в ДС встанет в следующий раз. И не факт, что удастся её обойти.
39 Drac0
 
24.04.15
10:58
(37) У тебя 1С бракованная. Никогда не возникало таких проблем с передачей параметра списком.

Сделай вместо соединения поле и посмотри

ВЫБОР
КОГДА ЗаказКлиента.Ссылка В(&ВыбранныеСсылки) Тогда
  ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ КАК Флаг
40 Drac0
 
24.04.15
11:00
(38) У тебя проблема на ровном место возникла. Никогда и ни разу не возникала проблема с передачей списка в качестве параметра. Ищи, где ты наг0внокодил. Может потом еще где ставишь кривой параметр.
41 Drac0
 
24.04.15
11:04
Выложи эту форму сюда, чтобы глянуть, если не получается.
42 PiotrLoginov
 
24.04.15
11:05
(39) Делал.  Истина - напротив ссылки, находящейся в списке значений &ВыбранныеСсылки на первом месте (вверху списка значений).

Напротив остальных ссылок ложь.  Если просто выполнять запрос в консоли запросов, Истина - напротив всех ссылок, присутствующих в списке значений &ВыбранныеСсылки
43 PiotrLoginov
 
24.04.15
11:05
(41) минуту..
44 Drac0
 
24.04.15
11:06
(42) Значит, параметр где-то корежишь.
45 Сильф
 
24.04.15
11:11
Передавай в параметр вместо списка массив. Это давний глюк.
46 PiotrLoginov
 
24.04.15
11:15
https://dl.dropboxusercontent.com/u/6647332/Тест.epf


(45) массив тоже пробовал.  Но сейчас попробую еще разок, спасибо.
47 Drac0
 
24.04.15
11:17
(45) Точно ведь глюк. Неужели я всегда массив только передавал?.. Чудеса.
48 PiotrLoginov
 
24.04.15
11:28
(47) Так или иначе, с этим можно что-то сделать?  Не думаю, что это глюк.  В компоновщике настроек ДС ясно видно, что у параметра ВыбранныеСсылки свойство ДоступенСписокЗначений - Ложь.
49 Drac0
 
24.04.15
11:29
(48) Что сделать? Это баг платформы. Передавай массив. Неужели сложно дописать ВыгрузитьЭлементы() ?
50 PiotrLoginov
 
24.04.15
11:30
Надо поискать подробную документацию по настройкам Компоновщика настроек динамического списка. СП, к сожалению, не помог.  На ИТС пока не нашел...
51 PiotrLoginov
 
24.04.15
11:30
Массив?  Сейчас попробую.
52 PiotrLoginov
 
24.04.15
11:34
Да, массив  передается.  Я тащусь. Практически сутки потеряны. Конечно, есть велась какая-то возня с юзверями параллельно, но все же...  Ладно.  Всем спасибо. Drac0 особенно  :)
53 Сильф
 
24.04.15
11:37
(52) это ещё в (32) было написано, просто нужно внимательнее читать :)
54 PiotrLoginov
 
24.04.15
12:17
(53) только наверное не в (32) , а в (45)

в (32) метод установки параметра - его я и так использовал

а (45) я принял к сведению, как раз собирался испробовать
55 Сильф
 
24.04.15
12:29
(54) в (32) - ПЕРВАЯ строчка ;)
56 PiotrLoginov
 
24.04.15
12:42
(55) аа )   да, просмотрел, каюсь
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс