Имя: Пароль:
1C
1C 7.7
v7: Запрос по справочнику и регистрам 7.7
,
0 uvl
 
20.01.12
15:11
Подскажите плиз.
Делаю запрос по регистру:
ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)
   |Период с ДатаНачала по ДатаКонца;
.................
       |Регистр.ПартииНаличие.ТекущийДокумент.Реализация.Контрагент,
   |Регистр.ПартииНаличие.ТекущийДокумент.РеализацияРозница.Контрагент,
   |                  Регистр.ПартииНаличие.ТекущийДокумент.ОтчетККМ.Контрагент,
   |                  Регистр.ПартииНаличие.ТекущийДокумент.РеализацияПрочее.Контрагент,
   |                  Регистр.ПартииНаличие.ТекущийДокумент.ВозвратОтПокупателя.Контрагент,
   |                  Регистр.ПартииОтданные.ТекущийДокумент.ОтчетКомиссионера.Контрагент,
   |Регистр.ОплаченныйТовар.Покупатель; ";

Выбираются естественно только контрагенты по которым были движения.
А можно ли запросом в семерке как то можно выбрать всех остальных, то есть чтобы в выборке были и те по которым движений нет.

В восьмерке легко например объединение сделать справочника и выборку из регистра.
А в 7ке не знаю, пробывал так, вообще пустой результат возвращает:

ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)
   |Период с ДатаНачала по ДатаКонца;
.................
   |Покупатель        = Справочник.Контрагенты.ТекущийЭлемент,
   |                  Регистр.ПартииНаличие.ТекущийДокумент.Реализация.Контрагент,
   |                  Регистр.ПартииНаличие.ТекущийДокумент.РеализацияРозница.Контрагент,
   |                  Регистр.ПартииНаличие.ТекущийДокумент.ОтчетККМ.Контрагент,
   |                  Регистр.ПартииНаличие.ТекущийДокумент.РеализацияПрочее.Контрагент,
   |                  Регистр.ПартииНаличие.ТекущийДокумент.ВозвратОтПокупателя.Контрагент,
   |                  Регистр.ПартииОтданные.ТекущийДокумент.ОтчетКомиссионера.Контрагент,
   |                  Регистр.ОплаченныйТовар.Покупатель; ";
1 povar
 
20.01.12
15:12
пятнично
2 uvl
 
20.01.12
15:14
(1) да нифига)) отвык от семерки
3 uvl
 
20.01.12
15:16
хотя и не привыкал то особо)
4 Sh1ko
 
20.01.12
15:17
Группировка все
5 uvl
 
20.01.12
15:25
похоже, что че то получилось))) (4) спасибо
6 uvl
 
20.01.12
15:33
уточню вопрос,

"Без Групп -  группы справочника не выводятся в запрос (для группировки по справочнику);
Все - в запрос выводятся все значения, и нулевые тоже (используется для группировок по справочникам и временных группировок).
"
У меня с Группировка Все в результат вывелись только группы, а как то можно чтобы Все Без групп ? запрос ругается
7 1Сергей
 
20.01.12
15:35
глупости какие-то
8 uvl
 
20.01.12
15:37
хотя нет, я сам себя обманул))
(4) не работает
9 Sh1ko
 
20.01.12
15:38
без групп все
10 1Сергей
 
20.01.12
15:39
(8) функции есть в запросе?
11 uvl
 
20.01.12
15:40
есть
12 uvl
 
20.01.12
15:40
это стандартный отчет из ТиСа, отчет по продажам
13 1Сергей
 
20.01.12
15:40
(11) по ресурсам регистра ПартииНаличие?
14 uvl
 
20.01.12
15:41
в него нужно вывести покуптелей, по которым не было продаж
15 uvl
 
20.01.12
15:41
(13) да
16 1Сергей
 
20.01.12
15:43
(15)

   |Покупатель        = Справочник.Контрагенты.ТекущийЭлемент,

а вот это было или добавили?
17 uvl
 
20.01.12
15:45
(16) это я поумничал
18 Sh1ko
 
20.01.12
15:45
(17) (9) помогло?
19 uvl
 
20.01.12
15:46
(18) нет
20 uvl
 
20.01.12
15:51
"без групп все" работает также как и "без групп"
21 Sh1ko
 
20.01.12
15:55
Покажи весь текст запроса
22 uvl
 
20.01.12
16:06
//{{ЗАПРОС(Сформировать)
Период с ДатаНачала по ДатаКонца;
Фирма            = Регистр.ПартииНаличие.Фирма,
                 Регистр.ПартииОтданные.Фирма,
                 Регистр.ОплаченныйТовар.Фирма,
                 Регистр.ОстаткиТМЦ.Фирма;
УпрАналитика    = Регистр.ПартииНаличие.Фирма.УпрАналитика,
                 Регистр.ПартииОтданные.Фирма.УпрАналитика,
                 Регистр.ОстаткиТМЦ.Фирма.УпрАналитика;
ЮрЛицо        = Регистр.ПартииНаличие.Фирма.ЮрЛицо,
                 Регистр.ПартииОтданные.Фирма.ЮрЛицо,
                 Регистр.ОстаткиТМЦ.Фирма.ЮрЛицо;
СтатусПартии    = Регистр.ПартииНаличие.СтатусПартии,
                 Регистр.ПартииОтданные.СтатусПартии;
Номенклатура    = Регистр.ПартииНаличие.Номенклатура,
                 Регистр.ПартииОтданные.Номенклатура,
                 Регистр.ОстаткиТМЦ.Номенклатура,
                 Регистр.ОплаченныйТовар.Номенклатура;
СвойствоТМЦ    = Регистр.ПартииНаличие.Номенклатура.ОсновноеСвойство.ЗначениеСвойства,
                 Регистр.ПартииОтданные.Номенклатура.ОсновноеСвойство.ЗначениеСвойства,
                 Регистр.ОстаткиТМЦ.Номенклатура.ОсновноеСвойство.ЗначениеСвойства;
МОЛ_Комиссионер= Регистр.ПартииНаличие.МОЛ,
                 Регистр.ПартииОтданные.Договор.Владелец;
СвойствоПокупателя = Регистр.ПартииНаличие.ТекущийДокумент.Реализация.Контрагент.ОсновноеСвойство.ЗначениеСвойства,
                 Регистр.ПартииНаличие.ТекущийДокумент.РеализацияРозница.Контрагент.ОсновноеСвойство.ЗначениеСвойства,
                 Регистр.ПартииНаличие.ТекущийДокумент.ОтчетККМ.Контрагент.ОсновноеСвойство.ЗначениеСвойства,
                 Регистр.ПартииНаличие.ТекущийДокумент.РеализацияПрочее.Контрагент.ОсновноеСвойство.ЗначениеСвойства,
                 Регистр.ПартииНаличие.ТекущийДокумент.ВозвратОтПокупателя.Контрагент.ОсновноеСвойство.ЗначениеСвойства,
                 Регистр.ПартииОтданные.ТекущийДокумент.ОтчетКомиссионера.Контрагент.ОсновноеСвойство.ЗначениеСвойства;
Покупатель        = Регистр.ПартииНаличие.ТекущийДокумент.Реализация.Контрагент,
                 Регистр.ПартииНаличие.ТекущийДокумент.РеализацияРозница.Контрагент,
                 Регистр.ПартииНаличие.ТекущийДокумент.ОтчетККМ.Контрагент,
                 Регистр.ПартииНаличие.ТекущийДокумент.РеализацияПрочее.Контрагент,
                 Регистр.ПартииНаличие.ТекущийДокумент.ВозвратОтПокупателя.Контрагент,
                 Регистр.ПартииОтданные.ТекущийДокумент.ОтчетКомиссионера.Контрагент,
                 Регистр.ОплаченныйТовар.Покупатель;
Проект            = Регистр.ПартииНаличие.ТекущийДокумент.Проект,
                 Регистр.ПартииОтданные.ТекущийДокумент.Проект,
                 Регистр.ОплаченныйТовар.Проект;
Автор            = Регистр.ПартииНаличие.ТекущийДокумент.Автор,
                 Регистр.ПартииОтданные.ТекущийДокумент.Автор;
Поставка        = Регистр.ПартииНаличие.Партия,
                 Регистр.ПартииОтданные.Партия,
                 Регистр.ОплаченныйТовар.Партия;
СвойствоПартии    = Регистр.ПартииНаличие.Партия.Свойство,
                 Регистр.ПартииОтданные.Партия.Свойство;
Поставщик        = Регистр.ПартииНаличие.Партия.Поставщик,
                 Регистр.ПартииОтданные.Партия.Поставщик;
ДокПоставки    = Регистр.ПартииНаличие.Партия.ПриходныйДокумент,
                 Регистр.ПартииОтданные.Партия.ПриходныйДокумент;
КодОперации    = Регистр.ПартииНаличие.КодОперации,
                 Регистр.ПартииОтданные.КодОперации;
НомерСтроки    = Регистр.ПартииНаличие.НомерСтроки,
                 Регистр.ПартииОтданные.НомерСтроки;
Договор        = Регистр.ПартииОтданные.Договор;
ВалВзаим        = Регистр.ПартииОтданные.Договор.ВалютаВзаиморасчетов;
Док            = Регистр.ПартииНаличие.ТекущийДокумент,
                 Регистр.ПартииОтданные.ТекущийДокумент;
Сумма1            = Регистр.ПартииНаличие.СуммаРуб,
                 Регистр.ПартииОтданные.СуммаРуб;
Сумма2            = Регистр.ПартииНаличие.СуммаБезНДС,
                 Регистр.ПартииОтданные.СуммаБезНДС;
Сумма3            = Регистр.ПартииНаличие.СуммаУпр,      
                 Регистр.ПартииОтданные.СуммаУпр;      
Оборот            = Регистр.ПартииНаличие.ПродСтоимость;
ОстатокТМЦ        = Регистр.ОстаткиТМЦ.Количество;
ОборотКом        = Регистр.ПартииОтданные.ПродСтоимость;
ВозвратДенег   = Регистр.ОплаченныйТовар.ПродСтоимость;Количество = Регистр.ПартииНаличие.Количество, Регистр.ПартииОтданные.Количество;Сумма = Регистр.ПартииНаличие.СуммаРуб, Регистр.ПартииОтданные.СуммаРуб;Функция ПриходС = Приход(Сумма);
Функция РасходС = Расход(Сумма);
Функция ПриходК = Приход(Количество);
Функция РасходК = Расход(Количество);
Функция ВозвратК = Приход(Количество)Когда(КодОперации в КодыВозвратов);
Функция ВозвратС = Приход(Сумма)Когда(КодОперации в КодыВозвратов);
Функция РасходБезНДС = Расход(Сумма2);
Функция РасходСНДС = Расход(Сумма1);
Функция ВозвратБезНДС = Приход(Сумма2)Когда(КодОперации в КодыВозвратов);
Функция ВозвратСНДС = Приход(Сумма1)Когда(КодОперации в КодыВозвратов);
Функция ОборотСумма = Сумма(Оборот)Когда(КодОперации в КодыОборота);
Функция ОборотУпр = Сумма(ПересчетВалюты(Оборот, Док))Когда(КодОперации в КодыОборота);
Функция ОборотКомРасход = Сумма(ПересчетВалюты(ОборотКом, Док, ВалВзаим, глРубли))Когда(КодОперации = глКО.ОтчетРеализатора);
Функция ОборотКомРасходУпр = Сумма(ПересчетВалюты(ОборотКом, Док, ВалВзаим, глДоллары))Когда(КодОперации = глКО.ОтчетРеализатора);
Функция ОборотВ = Сумма(Оборот)Когда(КодОперации в КодыВозвратов);
Функция Остаток = КонОст(ОстатокТМЦ);
Функция ОборотУпрВ = Сумма(ПересчетВалюты(Оборот, Док))Когда(КодОперации в КодыВозвратов);
Функция СуммаВозврат = Сумма(ВозвратДенег);    
Условие (НЕ(КодОперации в КодыПеремещений));Условие (Фирма в ВыбРазделитель1);Группировка Фирма;Группировка Проект;Группировка Покупатель Все;
23 uvl
 
20.01.12
16:12
Sh1ko подскажи плиз
24 uvl
 
20.01.12
16:21
я понимаю, что пятница, вечер)) ну не всеж пиво пьют, некоторые пьют его и по четвергам))
25 Sh1ko
 
20.01.12
16:53
Проект - справочник контрагенты?
26 Sh1ko
 
20.01.12
16:53
И что выдает (22) по группировке покупатель?
27 Sh1ko
 
20.01.12
16:55
Кинь ТЗ на форму отчете, после

запрос.выполнить(текстзапроса);
сделай

запрос.выгрузить(тз,0,0);
возврат;

И выложи скриншот таблицы полученной.
28 Sh1ko
 
20.01.12
16:57
Регистр.ПартииНаличие.ТекущийДокумент.Реализация.Контрагент,
                 Регистр.ПартииНаличие.ТекущийДокумент.РеализацияРозница.Контрагент,
                 Регистр.ПартииНаличие.ТекущийДокумент.ОтчетККМ.Контрагент,
                 Регистр.ПартииНаличие.ТекущийДокумент.РеализацияПрочее.Контрагент,
                 Регистр.ПартииНаличие.ТекущийДокумент.ВозвратОтПокупателя.Контрагент,
                 Регистр.ПартииОтданные.ТекущийДокумент.ОтчетКомиссионера.Контрагент,
                 Регистр.ОплаченныйТовар.Покупатель;

Везде контрагент - именно справочник контрагенты, а не просто справочник? хз, будет ли работать тогда "Все"
29 uvl
 
20.01.12
17:33
(25) да так задумано, там хитрая схема
30 uvl
 
20.01.12
17:37
31 uvl
 
20.01.12
17:38
скриншот выложил (30)
32 uvl
 
20.01.12
19:28
Благодаря выводу в ТЗ разобрался.
Правильный вариант:

|Покупатель        = Регистр.ПартииНаличие.ТекущийДокумент.Реализация.Контрагент,
   |                  Регистр.ПартииНаличие.ТекущийДокумент.РеализацияРозница.Контрагент,
   |                  Регистр.ПартииНаличие.ТекущийДокумент.ОтчетККМ.Контрагент,
   |                  Регистр.ПартииНаличие.ТекущийДокумент.РеализацияПрочее.Контрагент,
   |                  Регистр.ПартииНаличие.ТекущийДокумент.ВозвратОтПокупателя.Контрагент,
   |                  Регистр.ПартииОтданные.ТекущийДокумент.ОтчетКомиссионера.Контрагент,
   |                  Регистр.ОплаченныйТовар.Покупатель,
   |                  Справочник.Контрагенты.ТекущийЭлемент;

|Группировка Покупатель Без Групп Все;

всем спасибо.
33 uvl
 
20.01.12
19:32
а не работало это потому что при переборе таких результатов выборки в стадартном отчете по продажам в ТиСе отсекаются записи с Остаток = 0