Имя: Пароль:
1C
1С v8
И опять отбор в динамическом списке
, ,
0 haggart
 
20.05.14
17:41
В форме справочника Контрагентов создаю список значений с перечнем
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
СпКонтрагентов=Новый СписокЗначений;
*** код формирования СпКонтрагентов***
Список.Параметры.УстановитьЗначениеПараметра("СпКонтрагентов",СпКонтрагентов);
КонецПроцедуры

в произвольном запросе динамического списка пишу такой код


ВЫБРАТЬ
    Контрагенты.Код,
    Контрагенты.КодПоЕДРПОУ,
    Контрагенты.Наименование,
    Контрагенты.ИНН
ИЗ
    Справочник.Контрагенты КАК Контрагенты
ГДЕ
    Контрагенты.Ссылка В(&СпКонтрагентов)


В итоге, в списке значений 3 значений, в выводимой форме контрагентов только 1 значение (первое).

Можно ли использовать в произвольных запросах условие в Списке?
1 Холодильник
 
20.05.14
17:43
должно быть 3
2 Лаврентий Берия
 
20.05.14
17:43
(0) Параметр-то установил?
3 DmitriyDI
 
20.05.14
17:43
(0) в отладчике посмотри что тут СпКонтрагентов
4 haggart
 
20.05.14
17:43
именно что должно быть 3, но один!
5 haggart
 
20.05.14
17:44
в отладчике СпКонтрагентов состоит из 3 значений.
6 Холодильник
 
20.05.14
17:45
выбери еще ссылку в запросе ДС
7 DmitriyDI
 
20.05.14
17:45
теперь интерес вызывает
*** код формирования СпКонтрагентов***
8 haggart
 
20.05.14
17:47
А какая разница как формируется СпКонтрагентов?
Но если интересно, то

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


Скажу другую интересную вещь, например удаляю того контрагента из СпКонтрагентов, и все равно в форме списка один контрагент, но уже другой, тот что первый в СпКонтрагентов.
9 haggart
 
20.05.14
17:48
вопрос в том, можно ли использовать в произвольном запросе какой-то условие отличное от "=" ?
10 DmitriyDI
 
20.05.14
17:49
(9) любое из возможных
11 Адский плющ
 
20.05.14
17:50
Используй не список значений, а массив.
12 Холодильник
 
20.05.14
17:50
(9) можно, всегда можно было, во всех типовых так сделано. это что-то у тебя, косяки какие-то

зы. после
Список.Параметры.УстановитьЗначениеПараметра("СпКонтрагентов",СпКонтрагентов);
отладчиком посмотри значение параметра
13 haggart
 
20.05.14
17:51
(10) точно? есть аргументы?
14 DmitriyDI
 
20.05.14
17:54
(13) да! Консоль запросов!
15 DmitriyDI
 
20.05.14
17:56
(13) открываю консоль запросов пишу там

ВЫБРАТЬ
    Контрагенты.Код,
    Контрагенты.Наименование,
    Контрагенты.ИНН
ИЗ
    Справочник.Контрагенты КАК Контрагенты
ГДЕ
    Контрагенты.Ссылка В(&СпКонтрагентов)

Задаю в параметрах - список значений - добавляю три, формирую, и, что увидел я?

три строки на выходе)
16 haggart
 
20.05.14
17:56
(12) добавил еще 5 значений. отладчиком смотрю, там уже 7 значений,

СпКонтрагентов    EMPlan Inc; Bostovan; ALWAREL (Укррос); Приватбанк; Carbon Capital Markets; ГО ІФА Україна; Ital Engineering    СписокЗначений

но в форме списка контрагентов - 1 контрагент, тот, что первый в списке.
17 haggart
 
20.05.14
17:59
Консоль запросов выдает 7 строк, а в форме 1...
18 Адский плющ
 
20.05.14
18:04
Используй не список значений, а массив, будь мужиком, блеать!
19 haggart
 
20.05.14
18:06
(18)
Супер! Откуда ты знал?
20 Адский плющ
 
20.05.14
18:08
Да вроде уже баян как столетний
21 haggart
 
20.05.14
18:09
Спасибо!
А чего тогда (15) фигню  порет?
22 Адский плющ
 
20.05.14
18:11
(21) А обычные запросы (в т.ч. в консоли) СЗ нормально жрут. Это в ДС засаду сделали.