Имя: Пароль:
1C
1С v8
В иерархии
,
0 barracuda-13
 
09.09.15
16:12
добрый день.Сделал запросик
.................
    |   ЛЕВОЕ соединение РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствХарактерНоменклатуры
    |   ПО ЗначенияСвойствХарактерНоменклатуры.Объект = СпрНоменклатура.Ссылка
    |    И  ЗначенияСвойствХарактерНоменклатуры.Свойство<>&Производитель
    
    |ГДЕ
    |СпрНоменклатура.Ссылка.ПометкаУдаления = ЛОЖЬ
    |И СпрНоменклатура.Ссылка.ЭтоГруппа = ЛОЖЬ
    |И СпрНоменклатура.Ссылка В ИЕРАРХИИ(&Папка)";//!!!!!!!

КонецЕсли;
Запрос.УстановитьПараметр("Папка",ГруппаВыбора);//ГруппаВыбора-спр.Номенклатура

..................

работает но как сделать чтобы если реквизит на форме ГруппаВыбора был пустой и чтобы по всему справочнику запрос работал
1 vicof
 
09.09.15
16:13
ИЛИ &папка = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
2 Wirtuozzz
 
09.09.15
16:13
Жуть. предлагаю перед запросом проверить реквизит до запроса, потом собрать запрос и получить выборку
3 Ненавижу 1С
 
гуру
09.09.15
16:15
если ГруппаВыбора пустая ссылка он и так весь справочник выдает
4 barracuda-13
 
09.09.15
16:18
(3)вобщем то Вы правы но нужно именно в фомрочек выбора выбрать пустое значение.А тут идея именно чтобы пользователь вообще не трогал реквизит и сразу нажал сформировать.Для него будет непонятно если он начнет пихать в этот реквизит <ПустоеЗначение>
(1)спасибо сейчас попробую
5 Ненавижу 1С
 
гуру
09.09.15
16:19
(4) так там все таки список значений, а не справочник-ссылка?
6 rphosts
 
09.09.15
16:20
(0) >как сделать чтобы если реквизит на форме ГруппаВыбора был пустой и чтобы по всему справочнику запрос работал

Ну боян-же! За последние дней 10 пару раз писал на мисте:

Если бла-бла-бла Тогда
   Запрос.текст = СтрЗаменить(Запрос.текст, "И СпрНоменклатура.Ссылка В ИЕРАРХИИ(&Папка)","");
КонецЕсли;
7 rphosts
 
09.09.15
16:21
И вообще, если количество уровней иерархии ограничено и не велико - использовать "В ИЕРАРХИИ" - дурной тон
8 Ненавижу 1С
 
гуру
09.09.15
16:22
(7) это потому что 1С реализовала криво иерархию
9 barracuda-13
 
09.09.15
16:23
(1)    |И СпрНоменклатура.Ссылка В ИЕРАРХИИ(&Папка)
    |ИЛИ &Папка = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)";

Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
ИЛИ &Папка <<?>>= ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
10 rphosts
 
09.09.15
16:25
(9) Пустая ссылка допустима только в параметрах, а запросе писать так:
ЗНАЧЕНИЕ(Справочник.Номенклатура.)
11 Брегорьян
 
09.09.15
16:25
(10) щито?
12 Ненавижу 1С
 
гуру
09.09.15
16:25
(10) проблема не в этом, у него там СЗ и его нельзя сравнивать ни с чем в запросе
13 rphosts
 
09.09.15
16:28
(12) да всё это прон, я-б делал как написал в (6)
14 barracuda-13
 
09.09.15
16:28
Пардон
ГруппаВыбора - поле ввода
тип значения-список значений
тип значения списка-СправочникСсылка.Номенклатура
15 barracuda-13
 
09.09.15
16:53
что то вообще теперь по номенклатуре не выбирает а тупо все выкидывает.Сорри токо учусь
    |ГДЕ
    |СпрНоменклатура.Ссылка.ПометкаУдаления = ЛОЖЬ
    |И СпрНоменклатура.Ссылка.ЭтоГруппа = ЛОЖЬ";

    //|И СпрНоменклатура.Ссылка В ИЕРАРХИИ(&Папка)";

КонецЕсли;
Если НЕ ЗначениеЗаполнено(ГруппаВыбора) Тогда
   Запрос.текст = СтрЗаменить(Запрос.текст, "И СпрНоменклатура.Ссылка В ИЕРАРХИИ(&Папка)","");
Иначе
    Запрос.текст = СтрЗаменить(Запрос.текст, "И СпрНоменклатура.Ссылка В ИЕРАРХИИ(&Папка)","И СпрНоменклатура.Ссылка В ИЕРАРХИИ(&Папка)");
КонецЕсли;
16 Брегорьян
 
09.09.15
16:55
второй стрзаменить могуч
17 barracuda-13
 
09.09.15
16:55
(16) ну извиняй
18 Ненавижу 1С
 
гуру
09.09.15
16:55
вместо

СпрНоменклатура.Ссылка.ПометкаУдаления = ЛОЖЬ
И СпрНоменклатура.Ссылка.ЭтоГруппа = ЛОЖЬ

надо

НЕ СпрНоменклатура.Ссылка.ПометкаУдаления
    И НЕ СпрНоменклатура.Ссылка.ЭтоГруппа
19 Брегорьян
 
09.09.15
16:56
пока не просветление цикл жмёшь шифт+ф9, смотришь в текст запроса, много думаешь. конеццикла
20 Ненавижу 1С
 
гуру
09.09.15
16:56
(15) так у тебя в тексте такого условия и нет
21 Брегорьян
 
09.09.15
16:57
(20) ещё немного, и он догадается, что СтрЗаменить заменяет подстроки в строке
22 barracuda-13
 
09.09.15
17:00
во я гоню.спасибо
23 barracuda-13
 
09.09.15
17:02
(21) невнимательный.спасибо