Имя: Пароль:
1C
1С v8
подскажите плз с запросом...
0 WF72
 
16.11.11
15:25
Сделал простенький

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


Смотрю оборотку, по этому счету и номенклатуре только одна операция, указано всё: вся аналитика, сумма и количество. Но запрос почему-то возвращает 2 строки:

Дата: 25.10.2011 0:00:01
Контрагент: ООО Импорт
Номенклатура: Автомобиль Mitsubishi Pajero 3.8 LWB
Склад:
Деб.остатки: 545 446
Кол-во: 0
-----------------------
Дата: 25.10.2011 0:00:01
Контрагент: ООО Импорт
Номенклатура: Автомобиль Mitsubishi Pajero 3.8 LWB
Склад: Склад автомобили
Деб.остатки: 0
Кол-во: 1
-----------------------

Что за хрень творится? Это запрос кривой или я чего-то не понимаю? Помогите плз...
1 zak555
 
16.11.11
15:28
|ГДЕ
|    ВыбРег.Субконто2 = &Номенклатура";


это зачем ?
2 WF72
 
16.11.11
15:30
Так именно по конкретной номенклатуре мне надо вытащить данные из 002 счета.
3 Error pro
 
16.11.11
15:31
(2) параметры виртуальной таблицы?
4 zak555
 
16.11.11
15:31
(2) что у тебя такое "Организация = &Организация" ?
5 Шапокляк
 
16.11.11
15:32
(0) А в плане счетов поглядите - там по субконто Склады на этом счете суммовой учет ведется?
6 WF72
 
16.11.11
15:32
(4)поле выбора.
7 WF72
 
16.11.11
15:34
(5)спасибо огромное, и верно, именно по складам как раз не ведется! в таком случае нужно сворачивать результаты запроса?
8 Шапокляк
 
16.11.11
15:37
(7) Ну как-то распределить общую сумму по складам в запросе, наверно (может, вложенный запрос по всем складам: сумму поделить на количество и получить цену, которую потом умножить на остаток по конкретному складу). Думаю, сворачивание не поможет.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший