Имя: Пароль:
1C
1С v8
Помогите с запрос
,
0 Den_B12
 
29.05.13
14:07
Всем привет.
Бухгалтерия предприятия, редакция 2.0 (2.0.46.8)
Помогите плиз с запросиком...
Итак, запрос к остаткам на указанных счетах, выбираю нужны данные:
   Запрос = Новый Запрос;
   Счета = Новый Массив;
   Счета.Добавить(ПланыСчетов.Хозрасчетный.СпецодеждаВЭксплуатацииВспомогательный);
   Счета.Добавить(ПланыСчетов.Хозрасчетный.ИнвентарьИХозяйственныеПринадлежностиВЭксплуатации);
   Запрос.УстановитьПараметр("Счета", Счета);
   ВидСубконто = Новый Массив;
   ВидСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура);
   ВидСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ПартииМатериаловВЭксплуатации);
   ВидСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.РаботникиОрганизаций);
   Запрос.УстановитьПараметр("ВидСубконто", ВидСубконто);
   Запрос.УстановитьПараметр("ДатаСведений", ДатаСведений);
   Запрос.Текст =
       "ВЫБРАТЬ
       |    ХозрасчетныйОстатки.Субконто1.Родитель,
       |    ХозрасчетныйОстатки.Субконто1.Наименование,
       |    ХозрасчетныйОстатки.Субконто1.БазоваяЕдиницаИзмерения,
       |    ХозрасчетныйОстатки.Субконто1.НаименованиеПолное,
       |    ХозрасчетныйОстатки.Субконто2.Дата,
       |    ХозрасчетныйОстатки.Субконто3.Наименование
       |ИЗ
       |    РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаСведений, Счет В (&Счета), &ВидСубконто, ) КАК ХозрасчетныйОстатки";

Теперь нужно добавить для каждой номенклатуры поле, которое будет содержать информацию о значениях дополнительных реквизитов (их у нас пока два) справочника Номенклатура (значения содержатся в регистре сведений ЗначенияСвойствОбъектов)
Можно как-нибудь выдернуть эти данные и засунуть их в новое поле?
1 mikecool
 
29.05.13
14:08
да, левое соединение с регистром
2 Aprobator
 
29.05.13
14:11
только геморно это довольно без СКД.
3 Aprobator
 
29.05.13
14:12
хотя, если пока только два - то можно, вот когда все приспичит, тогда будет веселее.
4 Den_B12
 
29.05.13
15:16
(1) это понятно
но по две строчки получается для каждой номенклатуры...
   Запрос.Текст =
       "ВЫБРАТЬ
       |    ХозрасчетныйОстатки.Субконто1.Родитель,
       |    ХозрасчетныйОстатки.Субконто1.Наименование,
       |    ХозрасчетныйОстатки.Субконто1.БазоваяЕдиницаИзмерения,
       |    ХозрасчетныйОстатки.Субконто1.НаименованиеПолное,
       |    ХозрасчетныйОстатки.Субконто2.Дата,
       |    ХозрасчетныйОстатки.Субконто3.Наименование,
       |    ЗначенияСвойствОбъектов.Значение,
       |    ЗначенияСвойствОбъектов.Свойство
       |ИЗ
       |    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
       |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаСведений, Счет В (&Счета), &ВидСубконто, ) КАК ХозрасчетныйОстатки
       |        ПО ХозрасчетныйОстатки.Субконто1 = ЗначенияСвойствОбъектов.Объект";

А нужно чтобы запись по номенклатуре была одна, но было поле (типа таблицы значения) в котором бы и выводились все значения и свойства для этой номенклатуры.
5 Aprobator
 
29.05.13
16:17
(4) левое соединение нефига не в ту сторону. И чтобы было по одной строчке, соединений должно быть по количеству требуемых свойств.
6 Den_B12
 
03.06.13
08:56
(5) тьфу ты, ошибся, действительно не в ту сторону.
Поясните плиз про "соединений должно быть по количеству требуемых свойств", это как?
7 Den_B12
 
03.06.13
09:18
Вот так тоже в две строчки получается. Народ подскажите как быть.
   Запрос.Текст =
       "ВЫБРАТЬ
       |    ХозрасчетныйОстатки.Субконто1.Родитель,
       |    ХозрасчетныйОстатки.Субконто1.Наименование,
       |    ХозрасчетныйОстатки.Субконто1.БазоваяЕдиницаИзмерения,
       |    ХозрасчетныйОстатки.Субконто1.НаименованиеПолное,
       |    ХозрасчетныйОстатки.Субконто2.Дата,
       |    ХозрасчетныйОстатки.Субконто3.Наименование,
       |    ВЫБОР
       |        КОГДА ЗначенияСвойствОбъектов.Свойство.Наименование = ""Инвентарный номер""
       |            ТОГДА ЗначенияСвойствОбъектов.Значение
       |    КОНЕЦ КАК ИнвентарныйНомер,
       |    ВЫБОР
       |        КОГДА ЗначенияСвойствОбъектов.Свойство.Наименование = ""Заводской номер""
       |            ТОГДА ЗначенияСвойствОбъектов.Значение
       |    КОНЕЦ КАК ЗаводскойНомер
       |ИЗ
       |    РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаСведений, Счет В (&Счета), &ВидСубконто, ) КАК ХозрасчетныйОстатки
       |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
       |        ПО ХозрасчетныйОстатки.Субконто1 = ЗначенияСвойствОбъектов.Объект";
8 Aprobator
 
03.06.13
10:58
(7) если так, то ГРУППИРОВКА по полям кроме ВЫБОР КОГДА и МАКСИМУМ(ВЫБОР ....
9 Aprobator
 
03.06.13
10:59
(8) + и добавь условие на свойства для РС. Чтобы все подряд не тащилось.
10 viktor_vv
 
03.06.13
11:04
|Выбрать ЗначенияСвойствОбъектов1.ЗначениеСвойства КАК Значение1,
|Выбрать ЗначенияСвойствОбъектов2.ЗначениеСвойства КАК Значение2,

       |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов1
       |        ПО ХозрасчетныйОстатки.Субконто1 = ЗначенияСвойствОбъектов1.Объект И ЗначенияСвойствОбъектов1.Свойство = &Свойство1
       |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов2
       |        ПО ХозрасчетныйОстатки.Субконто1 = ЗначенияСвойствОбъектов2.Объект И ЗначенияСвойствОбъектов2.Свойство = &Свойство2";
11 viktor_vv
 
03.06.13
11:10
(10)*

       "ВЫБРАТЬ
       |    ХозрасчетныйОстатки.Субконто1.Родитель,
       |    ХозрасчетныйОстатки.Субконто1.Наименование,
       |ЗначенияСвойствОбъектов1.ЗначениеСвойства КАК Значение1,
       |ЗначенияСвойствОбъектов2.ЗначениеСвойства КАК Значение2,
12 Den_B12
 
03.06.13
11:30
(8) ни по какому полю не дает добавить группировку. Пишет "Недопустимое поле для группировки Субконто1НаименованиеПолное"... Хотя этого поля в группировку не добавлено
13 Den_B12
 
03.06.13
11:59
(11) емае, так просто. Большое вам человеческое спасибо!!!
14 Aprobator
 
03.06.13
13:07
(12) там строка неограниченной длины, потому и пишет. ВЫРАЗИТЬ(... КАК ... ) решило бы проблему.
15 Aprobator
 
03.06.13
13:08
(10)(11) собственно, что я и имел ввиду.
16 Den_B12
 
03.06.13
13:23
Всем еще раз спасибо!