Имя: Пароль:
1C
1C 7.7
v7: Получить остаток запросом
0 curys
 
17.01.12
01:44
Доброе время суток. Подскажите, что я в запросе делаю не так? Мне необходимо получить остаток в рублях по выбранной партии...

   Запрос2 = СоздатьОбъект("Запрос");
   ТекстЗапроса2 =
   "//{{ЗАПРОС(Сформировать)
   |Период с ДатаНачала по ДатаКонца;
   |Фирма            = Регистр.ПартииНаличие.Фирма;
   |УпрАналитика    = Регистр.ПартииНаличие.Фирма.УпрАналитика;
   |ЮрЛицо        = Регистр.ПартииНаличие.Фирма.ЮрЛицо;
   |Партия            = Регистр.ПартииНаличие.Партия;
   |Контрагент        = Регистр.ПартииНаличие.Партия.Поставщик;
   |Количество = Регистр.ПартииНаличие.Количество;
   |Сумма = Регистр.ПартииНаличие.СуммаРуб;
   |Функция КонОстС = КонОст(Сумма);";
   Если Ном = 3 Тогда
       ТекстЗапроса2 = ТекстЗапроса2 +
       "Условие (Партия = ПартияОт);";
   КонецЕсли;
1 Aleksey
 
17.01.12
01:46
Группировка по чем?
2 curys
 
17.01.12
01:57
прошу прощения за вопрос: а за чем она здесь? До этого я делал без группировки просто условие ставил контрагент и все, а вот с партией не получается...
3 Азат
 
17.01.12
03:23
(2) проблема не в партии, а в том, что группировок нет, а функция есть... по кому будет рассчитываться сия функция?
4 fgaabbb
 
17.01.12
04:51
добавь |Группировка Партия;
и будет тебе счастье
5 curys
 
17.01.12
11:37
спасибо
6 curys
 
17.01.12
13:40
установил группировку, но все равно выдает 0, хотя по данному поступлению есть остаток
В отладчике текПАрт равен:
ТекПарт = Поступление ТМЦ 0000000044 (09.05.11)


Запрос2 = СоздатьОбъект("Запрос");
ТекстЗапроса2 =
"//{{ЗАПРОС(Сформировать)
|Период с ДатаНачала по ДатаКонца;
|Фирма = Регистр.ПартииНаличие.Фирма;
|УпрАналитика = Регистр.ПартииНаличие.Фирма.УпрАналитика;
|ЮрЛицо = Регистр.ПартииНаличие.Фирма.ЮрЛицо;
|Партия = Регистр.ПартииНаличие.Партия;
|Контрагент = Регистр.ПартииНаличие.Партия.Поставщик;
|Количество = Регистр.ПартииНаличие.Количество;
|Сумма = Регистр.ПартииНаличие.СуммаРуб;
|Функция КонОстС = КонОст(Сумма);";
Если Ном = 3 Тогда
ТекстЗапроса2 = ТекстЗапроса2 +
"Условие (Партия = ТекПарт);
|Группировка Партия;";
КонецЕсли;
7 PuhUfa
 
17.01.12
13:44
(6) код прям вот так как есть? и не ругается?
8 curys
 
17.01.12
13:49
в том то и дело что нет
9 PuhUfa
 
17.01.12
13:51
(8) а измерение регистра Партия - справочник.партии?
10 curys
 
17.01.12
13:55
да, пробывал сначала найти элемент справочника партии, а потом уже этот элемент подставлять в запрос, результат тот же.
11 PuhUfa
 
17.01.12
13:57
(10) значит не так искал или не так подставлял потом.
Но сравнивать Справочник.Партии с Документы.ПоступлениеТМЦ как ты делаешь в(6) точно нельзя
12 PuhUfa
 
17.01.12
13:58
вообще посмотри стандартный отчет ВедомостьПоПартиямТМЦ
13 curys
 
17.01.12
14:08
изначально перед запросом я сделал следующее:

//получить номер партии из справочника
Парт =  СоздатьОбъект("Справочник.Партии");
Парт1 = ТекРасшифровка;
Парт.Выбрать(ПАрт1);
Парт.ПолучитьЭлемент();  
ТекПарт = ПАрт.ТекущийЭлемент();
14 PuhUfa
 
17.01.12
14:19
(13) это что такое?
15 curys
 
17.01.12
15:34
все разобрался, надо было так:

   Запрос2 = СоздатьОбъект("Запрос");
   ТекстЗапроса2 =
   "//{{ЗАПРОС(Сформировать)
//    |Период с ДатаНачала по ДатаКонца;
   |Фирма            = Регистр.ПартииНаличие.Фирма;
   |УпрАналитика    = Регистр.ПартииНаличие.Фирма.УпрАналитика;
   |ЮрЛицо        = Регистр.ПартииНаличие.Фирма.ЮрЛицо;
   |Партия            = Регистр.ПартииНаличие.Партия;
   |Контрагент        = Регистр.ПартииНаличие.Партия.Поставщик;
   |Количество = Регистр.ПартииНаличие.Количество;
   |Сумма = Регистр.ПартииНаличие.СуммаРуб;
   |Функция КонОстС = КонОст(Сумма);";
   Если Ном = 3 Тогда
       ТекстЗапроса2 = ТекстЗапроса2 +
       "Условие (Партия.ПриходныйДокумент = ТекПарт);
       |Группировка Партия;";
   КонецЕсли;

Спасибо за ответы.
Независимо от того, куда вы едете — это в гору и против ветра!