Имя: Пароль:
1C
1С v8
Хитрости "в списке"
0 ponaroshku
 
13.01.12
13:46
Есть запрос, параметр Пар1 передается через форму,
пар1= справочникссылка
Идет вывод

Появилось необходимость выбирать несколько возможных значений

В форме меняю тип значения на СписокЗначений, тип значений списка справочникссылка

Вывод не идет

Подскажите, в чем хитрость?
1 FIXXXL
 
13.01.12
13:47
(0) в использовании построителя отчета
2 ponaroshku
 
13.01.12
13:54
(1) не засчитано, используется
3 Wobland
 
13.01.12
13:56
а в запросе есть В?
4 ponaroshku
 
13.01.12
13:58
(3) привет :))
у меня там  В ИЕРАРХИИ проставлено
5 Wobland
 
13.01.12
14:02
ну не наю, у меня работает
6 ponaroshku
 
13.01.12
14:05
(4) больше ничего не менял? при изменении типа значения?
только строчку в условии?

я попробовала убрать в иерархии, поставила В, ну собственно тот же результат
7 Wobland
 
13.01.12
14:10
ВЫБРАТЬ
   Номенклатура.Ссылка
ИЗ
   Справочник.Номенклатура КАК Номенклатура
ГДЕ
   Номенклатура.Ссылка В ИЕРАРХИИ (&Ссылка)
   //Номенклатура.Ссылка В (&Ссылка1)

всё показывает верно. Ссылка - список, Ссылка1 - элемент
8 Defender aka LINN
 
13.01.12
14:12
(2) Тогда при чем тут параметры?
9 FIXXXL
 
13.01.12
14:23
(2) значит не так используешь
в запросе блок {.....} присутствует?
ну и параметры задавать надо через отбор построителя отчета, а не через }.{
10 ponaroshku
 
23.01.12
07:14
Вообщем апну темку

у меня получилось выводить при заполненном списке значений (причина не вывода была в банальной невнимательности, не на то поле ссылался параметр)

Если я ставлю так
|И уатВыработкаПоСтоимостиОбороты.ТС.Ссылка В ИЕРАРХИИ(&ТС)   ИЛИ &ТС В ИЕРАРХИИ(значение(Справочник.ОсновныеСредства.ПустаяСсылка))

Выдает ошибку сравнения, несовместимые типы

Подскажите, как поправить
11 golden-pack
 
23.01.12
07:16
(10) no comments
12 Wobland
 
23.01.12
07:18
в иерархии с пустой ссылкой? как это?*
13 Wobland
 
23.01.12
07:19
И уатВыработкаПоСтоимостиОбороты.ТС.Ссылка В ИЕРАРХИИ(&ТС)   ИЛИ &ТС=значение(Справочник.ОсновныеСредства.ПустаяСсылка)
имела в виду?
14 kosts
 
23.01.12
07:20
(10) &ТС это какой тип?
Если список, то так <&ТС В ИЕРАРХИИ(значение(Справочник.ОсновныеСредства.ПустаяСсылка)) > вроде нельзя делать
15 ponaroshku
 
23.01.12
07:22
(13) я так пробовала, тогда тоже ошибка

: Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.


(14) список
16 Wobland
 
23.01.12
07:22
(13) а у нас же ТС - список. тогда надо динамически текст запроса формировать
17 ponaroshku
 
23.01.12
07:22
(11) не комментируйте, что ж отметились то
18 ponaroshku
 
23.01.12
07:26
(16) типа
запрос.ЗаполнитьНастройки();
Отбор = запрос.Отбор.Добавить("ТС");
Отбор.Значение = ТС;
Отбор.ВидСравнения = ВидСравнения.Равно;

Если ТС<>неопределенно Тогда
 запрос.Отбор.ТС.Использование = Ложь;
Иначе
 запрос.Отбор.ТС.Использование = Истина;
КонецЕсли;

Да?:)
19 Мимохожий Однако
 
23.01.12
07:27
ИЛИ &ТС В ИЕРАРХИИ(значение(Справочник.ОсновныеСредства.ПустаяСсылка)
объясни
20 Wobland
 
23.01.12
07:28
(18) а запрос какого типа? я имел в виду что-то вроде
Если ТС<>Неопределено Тогда
Запрос.Текст=Запрос.Текст+"И уатВыработкаПоСтоимостиОбороты.ТС.Ссылка В ИЕРАРХИИ(&ТС)"
21 Wobland
 
23.01.12
07:29
(19) телепатирую. она хочет красиво обработать ситуацию, когда юзер список не задал
22 golden-pack
 
23.01.12
07:30
(21) Телепатирую &ТС = Неопределено
23 Wobland
 
23.01.12
07:32
(22) неа. надо что-то типа &ТС=ПустойСписокЗначений
24 golden-pack
 
23.01.12
07:34
(23) оло ло ло ло

|И уатВыработкаПоСтоимостиОбороты.ТС.Ссылка В ИЕРАРХИИ(&ТС)   ИЛИ &ТС = Неопределено
25 ponaroshku
 
23.01.12
07:37
(24) нет
Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.

ТС- это список значений
26 golden-pack
 
23.01.12
07:42
(23) оло ло ло ло

|И уатВыработкаПоСтоимостиОбороты.ТС.Ссылка В ИЕРАРХИИ(&ТС)   ИЛИ &ТС ЕСТЬ NULL
27 Wobland
 
23.01.12
07:45
(25) Карина, нельзя так. делай присвоение ТС=NULL перед работой запроса, если юзер ничего не указал, и (26)
28 golden-pack
 
23.01.12
07:48
(27) Вублянд прав.
29 ponaroshku
 
23.01.12
07:53
(27), (28) в таком случае если я задаю список значений, он же будет обнуляться, разве нет?
30 golden-pack
 
23.01.12
07:54
(29) покажие весь код заного без текста запроса
31 Wobland
 
23.01.12
07:55
(29) а если не пустой, не "обнуляй". код подсказать?
Если ТС.Количество()=0 Тогда ТС=NULL
32 golden-pack
 
23.01.12
07:55
(31) Это ты из-за фото в карточки так энергично помогаешь ?
33 Wobland
 
23.01.12
07:57
(32) у нас уже астральная связь образовалась ;)
34 golden-pack
 
23.01.12
07:59
(33) мда. Девушка привлекла парня астральной связью. Это что-то новое.
35 ponaroshku
 
23.01.12
08:00
(32) :))) нет:))) это мой великий друг:))))

(33) :))))

(31) так мне же не надо делать его "обнуленным"
если не заполненно- берется список всех ОС
если "обнулять", то не выводит ничего:))


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

   Запрос.УстановитьПараметр("Орг", СоставОрг);
   Запрос.УстановитьПараметр("ДатаПо", ДатаПо);
   Запрос.УстановитьПараметр("ДатаС", ДатаС);
   Запрос.УстановитьПараметр("Потреб", Потреб);
   Запрос.УстановитьПараметр("ТС", Авто);
   Запрос.УстановитьПараметр("Маршрут", Маршрут);
   
Результат = Запрос.Выполнить();
36 Wobland
 
23.01.12
08:03
В ИЕРАРХИИ(NULL) получается... делай уже динамически текст.
Если ТС.Количество()>0 Тогда
Запрос.Текст=Запрос.Текст+"ГДЕ ТС В ИЕРАРХИИ(&ТС)";
Программист всегда исправляет последнюю ошибку.