Имя: Пароль:
1C
1С v8
Как в запросе указать определенную номенклатурную группу?
0 new1snik
 
21.05.13
14:27
Нужно получить запросом информацию с определенного счета(90.01) на определенный промежуток времени. Информация нужна по определенной номенклатурной группе(например - продукция собственного производства). Как и где в запросе указать ту номенклатурную группу?
Ничего большего чем это выдавить из себя не могу:
ВЫБРАТЬ
   "90_01" КАК Номер,
   ХозрасчетныйОбороты.СуммаОборот КАК Сумму
ИЗ
   РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНач, &ДатаКон, , Счет = &Счет90_01, &НомГруппа, , , ) КАК ХозрасчетныйОбороты

Запрос.УстановитьПараметр("НомГруппа", ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.НоменклатурныеГруппы);

Но это точно не то, что мне нужно, так как здесь не указана точная номенклатурная группа.
1 ДенисЧ
 
21.05.13
14:28
НайтиПоНаименованию...
2 Джинн
 
21.05.13
14:29
Если не предопределенный элемент, то нужно на форме выбрать его.

(1) Это не кошерный способ.
3 new1snik
 
21.05.13
14:38
(2) Это не предопределенный элемент. Его как-то можно выбрать программно, без действий пользователя на форме? Номенклатурные группы внесены в справочник НоменклатурныеГруппы.

Работаю с УПП 1.3
4 Джинн
 
21.05.13
14:40
(3) А откуда Вы знаете по какой именно группе отчет (ну или чего там) формировать нужно?
5 new1snik
 
21.05.13
14:41
(4) ТЗ
6 new1snik
 
21.05.13
14:42
(4) Делаю сборный отчет за месяц. Счета и номенклатурные группы по которым делается отчет уже известны.
7 Джинн
 
21.05.13
14:43
(6) Откуда они известны? Каким способом определяется "известность" с точки зрения программы?
8 ICWiner
 
21.05.13
14:44
Есть плохой вариант - Справочники.НоменлатурныеГруппы.НайтиПоКоду или НайтиПоНаименованию, но это так называемый ховнокод... Более-менее норм вариант - вывести на форму реквизит отбора или сделать отдельную форму настройки.
9 new1snik
 
21.05.13
14:45
(7) Я не совсем понимаю, что и как связано в УПП. Номенклатурные группы внесены в справочник НоменклатурныеГруппы. Так же есть ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.НоменклатурныеГруппы.
10 alex74
 
21.05.13
14:49
Добавляешь счета и группы в реквизиты отчета.
Делаешь возможность их указать например в меню отчета в Настройка - ...
В Сформировать() проверяешь, если они не выбраны - НайтиПоКоду().
11 ICWiner
 
21.05.13
14:49
В запрос надо передать элемент справочника
12 Славен
 
21.05.13
14:50
где субконта1 = Справочники.НоменклатурныеГруппы.НайтипоКоду(...)
13 Славен
 
21.05.13
14:51
субконта1 = Субконто
14 Джинн
 
21.05.13
14:51
(9) Плохо, что Вы не понимаете суть плана видов характеристик. Нужно подтянуться в этом вопросе.

В задаче Вам справочник нужен.
15 Славен
 
21.05.13
14:53
+(12) а если правильно, то  субконто№ =&Параметр ,а Запрос.УстановитьПараметр("Парамтер",Справочники.НоменклатурныеГруппы.НайтипоКоду(...))
16 new1snik
 
21.05.13
14:58
Спасибо всем за варианты, буду пытаться пробовать.
17 new1snik
 
22.05.13
08:24
(16) Вообщем, сделал в итоге так:

Запрос.Текст =
   "ВЫБРАТЬ
   |    ""9001"" КАК Счет,
   |    ХозрасчетныйОбороты.СуммаОборот КАК Сумма
   |ИЗ
   |    РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНач, &ДатаКон, , Счет В ИЕРАРХИИ (&Счет9001), , , , ) КАК ХозрасчетныйОбороты
   |ГДЕ
   |    ХозрасчетныйОбороты.Субконто1 = &ОпрНомГруппа
   |
   |ОБЪЕДИНИТЬ ВСЕ
   |
   |ВЫБРАТЬ
   |    ""9003"",
   |    ХозрасчетныйОбороты.СуммаОборот
   |ИЗ
   |    РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНач, &ДатаКон, , Счет = &Счет9003, , , , ) КАК ХозрасчетныйОбороты
   |ГДЕ
   |    ХозрасчетныйОбороты.Субконто1 = &ОпрНомГруппа";
   Запрос.УстановитьПараметр("ДатаНач", ДатаНач);
   Запрос.УстановитьПараметр("ДатаКон", ДатаКон);
   Запрос.УстановитьПараметр("Счет9003", ПланыСчетов.Хозрасчетный.Продажи_НДС);
   Запрос.УстановитьПараметр("Счет9001", ПланыСчетов.Хозрасчетный.Выручка);
   Запрос.УстановитьПараметр("ОпрНомГруппа", Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000001"));