Имя: Пароль:
1C
1С v8
Запрос, вытащить значения из Регистра сведений
0 _Дайвер_
 
11.05.17
16:21
Голову ломаю, выходят все данные кроме значений из регистра сведений

        "ВЫБРАТЬ
        |    ЗначенияСвойствОбъектов.Свойство,
        |    ЗначенияСвойствОбъектов.Объект КАК Объект,
        |    ЗначенияСвойствОбъектов.Значение КАК Значение
        |ПОМЕСТИТЬ ВТ_СвойстваВсе
        |ИЗ
        |    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
        |ГДЕ
        |    (ЗначенияСвойствОбъектов.Свойство.Наименование = &Наименование1
        |            ИЛИ ЗначенияСвойствОбъектов.Свойство.Наименование = &Наименование2
        |            ИЛИ ЗначенияСвойствОбъектов.Свойство.Наименование = &Наименование3
        |            ИЛИ ЗначенияСвойствОбъектов.Свойство.Наименование = &Наименование4
        |            ИЛИ ЗначенияСвойствОбъектов.Свойство.Наименование = &Наименование5)
        |    И ЗначенияСвойствОбъектов.Объект = &Номенклатура
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ВТ_СвойстваВсе.Свойство КАК Свойство1,
        |    ВТ_СвойстваВсе.Объект КАК Объект1,
        |    ВТ_СвойстваВсе.Значение КАК Значение1
        |ПОМЕСТИТЬ ВТ_ЗначениеСвойств1
        |ИЗ
        |    ВТ_СвойстваВсе КАК ВТ_СвойстваВсе
        |ГДЕ
        |    ВТ_СвойстваВсе.Свойство.Наименование = &Наименование1
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ВТ_СвойстваВсе.Свойство КАК Свойство2,
        |    ВТ_СвойстваВсе.Объект КАК Объект2,
        |    ВТ_СвойстваВсе.Значение КАК Значение2
        |ПОМЕСТИТЬ ВТ_ЗначениеСвойств2
        |ИЗ
        |    ВТ_СвойстваВсе КАК ВТ_СвойстваВсе
        |ГДЕ
        |    ВТ_СвойстваВсе.Свойство.Наименование = &Наименование2
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ВТ_СвойстваВсе.Свойство КАК Свойство3,
        |    ВТ_СвойстваВсе.Объект КАК Объект3,
        |    ВТ_СвойстваВсе.Значение КАК Значение3
        |ПОМЕСТИТЬ ВТ_ЗначениеСвойств3
        |ИЗ
        |    ВТ_СвойстваВсе КАК ВТ_СвойстваВсе
        |ГДЕ
        |    ВТ_СвойстваВсе.Свойство.Наименование = &Наименование3
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ВТ_СвойстваВсе.Свойство КАК Свойство4,
        |    ВТ_СвойстваВсе.Объект КАК Объект4,
        |    ВТ_СвойстваВсе.Значение КАК Значение4
        |ПОМЕСТИТЬ ВТ_ЗначениеСвойств4
        |ИЗ
        |    ВТ_СвойстваВсе КАК ВТ_СвойстваВсе
        |ГДЕ
        |    ВТ_СвойстваВсе.Свойство.Наименование = &Наименование4
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ВТ_СвойстваВсе.Свойство КАК Свойство5,
        |    ВТ_СвойстваВсе.Объект КАК Объект5,
        |    ВТ_СвойстваВсе.Значение КАК Значение5
        |ПОМЕСТИТЬ ВТ_ЗначениеСвойств5
        |ИЗ
        |    ВТ_СвойстваВсе КАК ВТ_СвойстваВсе
        |ГДЕ
        |    ВТ_СвойстваВсе.Свойство.Наименование = &Наименование5
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Номенклатура.Код,
        |    Номенклатура.Ссылка КАК Номенклатура,
        |    Номенклатура.БазоваяЕдиницаИзмерения,
        |    Номенклатура.ПометкаУдаления,
        |    Номенклатура.ЭтоГруппа,
        |    Номенклатура.АлкогольнаяПродукция,
        |    Номенклатура.ВидНоменклатуры,
        |    ВТ_ЗначениеСвойств1.Значение1,
        |    ВТ_ЗначениеСвойств2.Значение2,
        |    ВТ_ЗначениеСвойств3.Значение3,
        |    ВТ_ЗначениеСвойств4.Значение4,
        |    ВТ_ЗначениеСвойств5.Значение5
        |ИЗ
        |    Справочник.Номенклатура КАК Номенклатура
        |        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ЗначениеСвойств1 КАК ВТ_ЗначениеСвойств1
        |        ПО Номенклатура.Ссылка = ВТ_ЗначениеСвойств1.Значение1
        |        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ЗначениеСвойств3 КАК ВТ_ЗначениеСвойств3
        |        ПО Номенклатура.Ссылка = ВТ_ЗначениеСвойств3.Значение3
        |        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ЗначениеСвойств2 КАК ВТ_ЗначениеСвойств2
        |        ПО Номенклатура.Ссылка = ВТ_ЗначениеСвойств2.Значение2
        |        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ЗначениеСвойств5 КАК ВТ_ЗначениеСвойств5
        |        ПО Номенклатура.Ссылка = ВТ_ЗначениеСвойств5.Значение5
        |        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ЗначениеСвойств4 КАК ВТ_ЗначениеСвойств4
        |        ПО Номенклатура.Ссылка = ВТ_ЗначениеСвойств4.Значение4
        |ГДЕ
        |    Номенклатура.Ссылка = &Номенклатура
        |
        |СГРУППИРОВАТЬ ПО
        |    Номенклатура.Ссылка,
        |    Номенклатура.Код,
        |    Номенклатура.БазоваяЕдиницаИзмерения,
        |    Номенклатура.ПометкаУдаления,
        |    Номенклатура.ЭтоГруппа,
        |    Номенклатура.АлкогольнаяПродукция,
        |    Номенклатура.ВидНоменклатуры,
        |    ВТ_ЗначениеСвойств1.Значение1,
        |    ВТ_ЗначениеСвойств2.Значение2,
        |    ВТ_ЗначениеСвойств3.Значение3,
        |    ВТ_ЗначениеСвойств4.Значение4,
        |    ВТ_ЗначениеСвойств5.Значение5"
        ;
    Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
    Запрос.УстановитьПараметр("Наименование1", ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Группа 1"));
    Запрос.УстановитьПараметр("Наименование2", ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Группа 2"));
    Запрос.УстановитьПараметр("Наименование3", ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Группа 3"));
    Запрос.УстановитьПараметр("Наименование4", ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Группа 4"));
    Запрос.УстановитьПараметр("Наименование5", ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Группа 5"));
1 shamannk
 
11.05.17
16:24
Пакетно выполняй и смотри.
2 Ц_У
 
11.05.17
16:24
|    (ЗначенияСвойствОбъектов.Свойство.Наименование = &Наименование1
        |            ИЛИ ЗначенияСвойствОбъектов.Свойство.Наименование = &Наименование2
        |            ИЛИ ЗначенияСвойствОбъектов.Свойство.Наименование = &Наименование3
        |            ИЛИ ЗначенияСвойствОбъектов.Свойство.Наименование = &Наименование4
        |            ИЛИ ЗначенияСвойствОбъектов.Свойство.Наименование = &Наименование5)
-----
Я за попкорном
3 Джинн
 
11.05.17
16:26
(2) Не спугните...
4 Dmitrii
 
гуру
11.05.17
16:27
(0) И в чем смысл этого идиотизма?....

Ты уверен что соединение в последнем запросе должно быть именно таким: ПО Номенклатура.Ссылка = ВТ_ЗначениеСвойств1.Значение1, а не  ПО Номенклатура.Ссылка = ВТ_ЗначениеСвойств1.Объект1?
То есть по полю Значение, а не по полю Объект?


PS А вообще весь запрос - феерическая бредятина.
5 Dmitrii
 
гуру
11.05.17
16:30
(3) А что?... Геодезисты тут на днях были. Сегодня очередь дайверов 1С-ить.
6 catena
 
11.05.17
16:32
Запрос.УстановитьПараметр("Наименование1", ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Группа 1"));
7 _Дайвер_
 
11.05.17
16:32
(4) Уверен, я вытаскиваю значение, объект у меня уже есть, после этого заполняю форму. Есть другой способ? Если нужно вытащить конкретные поля только, причем из регистра сведений, в котором этих свойств МНОГО, и из них нужно только 5
8 _Дайвер_
 
11.05.17
16:33
(6) думал по коду искать, наименование уберу
9 h-sp
 
11.05.17
16:34
(7) вот же правильно

    Запрос.УстановитьПараметр("Наименование1", "Группа 1");

зачем наименрование с какой-то херней сравниваешь?
10 _Дайвер_
 
11.05.17
16:37
(9) Со свойством сравниваю, а заполняю значение
11 lodger
 
11.05.17
16:37
(6) туда надо Строка() впендюрить.
Запрос.УстановитьПараметр("Наименование1", Строка(ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Группа 1")));
12 catena
 
11.05.17
16:38
(11)О, так должно работать!
13 Ц_У
 
11.05.17
16:38
(11) ага, ПОДОБНО "Группа %[1-5]"
14 h-sp
 
11.05.17
16:40
(10) наименование сравниваешь со свойством? ну-ну.
15 h-sp
 
11.05.17
16:41
(10) и это

        |        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ЗначениеСвойств1 КАК ВТ_ЗначениеСвойств1
        |        ПО Номенклатура.Ссылка = ВТ_ЗначениеСвойств1.Объект1


номенклатура - это объект.
16 _Дайвер_
 
11.05.17
16:47
(15) Если объект ставлю, тоже пусто)
17 _Дайвер_
 
11.05.17
16:49
В карточке номенклатуры, значения заполнены у этих свойств
18 _Дайвер_
 
11.05.17
16:50
Ощущения что в первой части запроса что-то не так, а что...
19 catena
 
11.05.17
16:50
(17)Наверное у тебя нет ссылок в наименованиях. Но это не точно.
20 _Дайвер_
 
11.05.17
16:53
(5) Лабиринт отражений, Сергей Лукьяненко))) Почитайте, хорошая книга!
21 HardBall
 
11.05.17
16:55
(18) Горячо. Ссылку сравнивай со ссылкой.
22 _Дайвер_
 
11.05.17
16:55
(19) Я их по коду ищу, они не нужны в принципе)
23 _Дайвер_
 
11.05.17
16:57
(21) Пусто, в консоле запросов все так же)
24 СвинТуз
 
11.05.17
16:59
А зачем это все? Номенклатура то фиксированная?
25 _Дайвер_
 
11.05.17
17:00
(24) Чтобы провести анализ всей номенклатуры, не совсем
26 СвинТуз
 
11.05.17
17:05
точно не одна?
И ЗначенияСвойствОбъектов.Объект = &Номенклатура
27 dezss
 
11.05.17
17:05
(20) но он там не был программистом)
28 _Дайвер_
 
11.05.17
17:06
(26) Это для теста, потом поменяю, не хочу систему нагружать
29 _Дайвер_
 
11.05.17
17:06
(27) Я в курсе)))
30 _Дайвер_
 
11.05.17
17:07
(27) Просто понимание ника знают только избранные)))
31 HardBall
 
11.05.17
17:09
ВЫБРАТЬ
    Номенклатура.Код,
    Номенклатура.Ссылка КАК Номенклатура,
    Номенклатура.БазоваяЕдиницаИзмерения,
    Номенклатура.ПометкаУдаления,
    Номенклатура.ЭтоГруппа,
    Номенклатура.ВидНоменклатуры,
    ВЫБОР
        КОГДА ЗначенияСвойствОбъектов.Свойство = &Наименование1
            ТОГДА ЗначенияСвойствОбъектов.Значение
    КОНЕЦ КАК Значение1
ИЗ
    Справочник.Номенклатура КАК Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
        ПО Номенклатура.Ссылка = ЗначенияСвойствОбъектов.Объект
ГДЕ
    Номенклатура.Ссылка = &Номенклатура
32 _Дайвер_
 
11.05.17
17:15
(31) спасибо дружище)
33 h-sp
 
11.05.17
17:28
(31) это каждое свойство в отдельной строчке будет
34 mehfk
 
11.05.17
17:38
- Как с помощью встроенного языка 1с изобразить порнографию?
- Так как в (0).
35 Dmitrii
 
гуру
11.05.17
17:45
Дарю.

ТекстЗапроса = "ВЫБРАТЬ
   Номенклатура.Код,
   Номенклатура.Ссылка КАК Номенклатура,
   Номенклатура.ПометкаУдаления,
   Номенклатура.ЭтоГруппа,
   Номенклатура.ВидНоменклатуры,
   ЗначенияСвойствОбъектов1.Значение КАК Значение1,
   ЗначенияСвойствОбъектов2.Значение КАК Значение2,
   ЗначенияСвойствОбъектов3.Значение КАК Значение3,
   ЗначенияСвойствОбъектов4.Значение КАК Значение4,
   ЗначенияСвойствОбъектов5.Значение КАК Значение5
ИЗ
   Справочник.Номенклатура КАК Номенклатура
      ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов1
        ПО Номенклатура.Ссылка = ЗначенияСвойствОбъектов1.Объект
       И (ЗначенияСвойствОбъектов1.Свойство = &Свойство1)
      ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов2
        ПО Номенклатура.Ссылка = ЗначенияСвойствОбъектов2.Объект
        И (ЗначенияСвойствОбъектов2.Свойство = &Свойство2)
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов3
        ПО Номенклатура.Ссылка = ЗначенияСвойствОбъектов3.Объект
         И (ЗначенияСвойствОбъектов3.Свойство = &Свойство3)
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов4
        ПО Номенклатура.Ссылка = ЗначенияСвойствОбъектов4.Объект
         И (ЗначенияСвойствОбъектов4.Свойство = &Свойство4)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов5
        ПО Номенклатура.Ссылка = ЗначенияСвойствОбъектов5.Объект
          И (ЗначенияСвойствОбъектов5.Свойство = &Свойство5)
ГДЕ
   Номенклатура.Ссылка = &Номенклатура";
Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
Запрос.УстановитьПараметр("Свойство1", ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Группа 1"));
Запрос.УстановитьПараметр("Свойство2", ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Группа 2"));
Запрос.УстановитьПараметр("Свойство3", ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Группа 3"));
Запрос.УстановитьПараметр("Свойство4", ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Группа 4"));
Запрос.УстановитьПараметр("Свойство5", ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Группа 5"));
36 h-sp
 
11.05.17
17:45
(34) геодезистов, дайверов и бетонщиков просьба не обижать.
37 HardBall
 
11.05.17
17:47
(33) Сгруппировать.
(35) ГЫ.
38 Ц_У
 
11.05.17
18:22
(34) тут уже бдсм-ом попахивает
39 _Дайвер_
 
12.05.17
10:47
(35) Спасибо Дмитрий, так намного лучше)
2 + 2 = 3.9999999999999999999999999999999...