Имя: Пароль:
1C
1С v8
выборка свойств номенклатуры
0 Kalina
 
21.10.15
10:49
Здравствуйте, нужно выгрузить остатки номенклатуры с ее свойствами,
свойств много, если остатки соединяю с регистров сведений,  то получается на каждое свойство отдельная строка, как мне сделать так, стобы все свойства выгружались в одну строку ???
    Запрос.Текст = "ВЫБРАТЬ
                   |    ТоварыНаСкладахОстатки.Склад КАК Склад,
                   |    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
                   |    ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток,
                   |    ЗначенияСвойствОбъектов.Свойство КАК Свойство1,
                   |    ЗначенияСвойствОбъектов.Значение КАК Значение1,
                   |    ЗначенияСвойствОбъектов.Свойство КАК Свойство2,
                   |    ЗначенияСвойствОбъектов.Значение КАК Значение2
                   |ИЗ
                   |    РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
                   |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
                   |        ПО ТоварыНаСкладахОстатки.Номенклатура = ЗначенияСвойствОбъектов.Объект
                   |ГДЕ
                   |    ТоварыНаСкладахОстатки.Склад = &Склад
                   |    И ТоварыНаСкладахОстатки.Номенклатура В ИЕРАРХИИ(&Номенклатура)
                   |    И (ЗначенияСвойствОбъектов.Свойство = &Свойство1
                   |    ИЛИ ЗначенияСвойствОбъектов.Свойство = &Свойство2)
                   |АВТОУПОРЯДОЧИВАНИЕ";
1 ДенисЧ
 
21.10.15
10:52
Обрабатывать результат после запроса.
2 aleks_default
 
21.10.15
10:53
МАКСИМУМ спасет "отца русской демократии"
3 lxndr
 
21.10.15
10:55
ВЫБРАТЬ
МАКСИМУМ
(
ВЫБОР КОГДА Свойство = &Свойство1 ТОГДА Значение ИНАЧЕ NULL КОНЕЦ
) КАК Свойство1,
4 ibreiter
 
21.10.15
11:04
Убрать ЗначенияСвойствОбъектов.Значение КАК Значение2
Для ЗначенияСвойствОбъектов.Значение КАК Значение1 сделать выбор, если свойство = свойство2, тогда 0 и сгруппировать по Склад Номенклатура Св1 Св2
5 Kalina
 
21.10.15
16:30
Ничего не выходит - если свойств несколько, то для каждого свойства создает отдельную строку:
Номенклатура1 Свойство Значение1
Номенклатура1 Свойство           Значение2
А нужно чтобы для одной позиции номенклатуры была одна строка
Номенкларура1 Значение1 Значение2 Значение3 и т.д.
Номенкларура2 Значение1 Значение2 Значение3 и т.д.
Буду признателен за подробный разжеваный ответ
6 ibreiter
 
21.10.15
16:43
А чего в запросе то получилось?
7 patria0muerte
 
22.10.15
01:54
Надо на каждое значение свойства делать отдельное соединение. Т.е. примерно так:

Запрос.Текст =
"ВЫБРАТЬ
|    ТоварыНаСкладахОстатки.Склад КАК Склад,
|    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
|    ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток,
|    ЗначенияСвойствОбъектов.Свойство КАК Свойство1,
|    ЗначенияСвойствОбъектов.Значение КАК Значение1,
|    ЗначенияСвойствОбъектов1.Свойство КАК Свойство2,
|    ЗначенияСвойствОбъектов1.Значение КАК Значение2
|ИЗ
|    РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
|        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
|        ПО ТоварыНаСкладахОстатки.Номенклатура = ЗначенияСвойствОбъектов.Объект И ЗначенияСвойствОбъектов.Свойство = &Свойство1
|        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов1
|        ПО ТоварыНаСкладахОстатки.Номенклатура = ЗначенияСвойствОбъектов1.Объект И ЗначенияСвойствОбъектов1.Свойство = &Свойство2
|ГДЕ
|    ТоварыНаСкладахОстатки.Склад = &Склад
|    И ТоварыНаСкладахОстатки.Номенклатура В ИЕРАРХИИ(&Номенклатура)
|АВТОУПОРЯДОЧИВАНИЕ";
8 patria0muerte
 
22.10.15
01:55
+(7) Только соединение вроде ЛЕВОЕ нужно.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой