Имя: Пароль:
1C
1С v8
Помогите с запросом
0 BarakuzA
 
18.01.12
18:19
есть такой запрос (полное соединение)
   "ВЫБРАТЬ
   |    ЕСТЬNULL(Списание.Склад, Оприходование.Склад)                                   КАК Склад,
   |    ЕСТЬNULL(Списание.Группа, Оприходование.Группа)                                 КАК Группа,
   |    ЕСТЬNULL(Списание.Номенклатура, Оприходование.Номенклатура)                     КАК Номенклатура,
   |    СУММА(ЕСТЬNULL(Списание.Количество, 0) - ЕСТЬNULL(Оприходование.Количество, 0)) КАК Количество,
   |    СУММА(ЕСТЬNULL(Списание.Сумма, 0) - ЕСТЬNULL(Оприходование.Сумма, 0))           КАК Сумма
   |ИЗ
   |    (ВЫБРАТЬ
   |        СписаниеТоваров.Ссылка.Склад КАК Склад,
   |        СписаниеТоваров.Номенклатура.Родитель КАК Группа,
   |        СписаниеТоваров.Номенклатура КАК Номенклатура,
   |        СписаниеТоваров.Количество КАК Количество,
   |        СписаниеТоваров.Сумма КАК Сумма
   |    ИЗ
   |        Документ.СписаниеТоваров.Товары КАК СписаниеТоваров
   |    ГДЕ
   |        СписаниеТоваров.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
   |        И СписаниеТоваров.Ссылка.ИнвентаризацияТоваровНаСкладе <> ЗНАЧЕНИЕ(Документ.ИнвентаризацияТоваровНаСкладе.ПустаяСсылка)"+
           ?(СписокСкладов.Количество()=0," "," И СписаниеТоваров.Ссылка.Склад В (&ПарСклад)") +
           ?(СписокРодитель.Количество()=0," "," И СписаниеТоваров.Номенклатура.Родитель В (&ПарРодитель)") + "
   |        И СписаниеТоваров.Ссылка.Проведен = ИСТИНА) КАК Списание
   |        ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
   |            ОприходованиеТоваров.Ссылка.Склад КАК Склад,
   |            ОприходованиеТоваров.Номенклатура.Родитель КАК Группа,
   |            ОприходованиеТоваров.Номенклатура КАК Номенклатура,
   |            ОприходованиеТоваров.Количество КАК Количество,
   |            ОприходованиеТоваров.Сумма КАК Сумма
   |        ИЗ
   |            Документ.ОприходованиеТоваров.Товары КАК ОприходованиеТоваров
   |        ГДЕ
   |            ОприходованиеТоваров.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
   |            И ОприходованиеТоваров.Ссылка.ИнвентаризацияТоваровНаСкладе <> ЗНАЧЕНИЕ(Документ.ИнвентаризацияТоваровНаСкладе.ПустаяСсылка)"+
           ?(СписокСкладов.Количество()=0," "," И ОприходованиеТоваров.Ссылка.Склад В (&ПарСклад)") +
           ?(СписокРодитель.Количество()=0," "," И ОприходованиеТоваров.Номенклатура.Родитель В (&ПарРодитель)") + "
   |            И ОприходованиеТоваров.Ссылка.Проведен = ИСТИНА) КАК Оприходование
   |        ПО Списание.Номенклатура = Оприходование.Номенклатура
   
   |
   |СГРУППИРОВАТЬ ПО
   |    ЕСТЬNULL(Списание.Склад, Оприходование.Склад),
   |    ЕСТЬNULL(Списание.Группа, Оприходование.Группа),
   |    ЕСТЬNULL(Списание.Номенклатура, Оприходование.Номенклатура)
   
   |УПОРЯДОЧИТЬ ПО
   |    Количество УБЫВ
   
   |ИТОГИ СУММА(Количество), СУММА(Сумма) ПО
   |    ОБЩИЕ,
   |    Склад ИЕРАРХИЯ,
   |    Группа ИЕРАРХИЯ";

но проблема в том что он по отдельности считается все правильно, но когда делаешь полное соединение кол-во и сумма неправильно считаются...
1 Beduin
 
18.01.12
18:26
Сделай отдельно ПОЛНОЕ соединение этих двух документов по номенклатуре без итогов и группировок и посмотри на результат.
2 1с-кин
 
18.01.12
18:31
(0) там 100% задвоенные строки
попробуйте ВНУТРЕНЕЕ соединение
3 МурЬка
 
18.01.12
18:47
(2) внутреннее много всего уберет.
(0) Если я правильно поняла, чего хотите, тут не соединение, а объединение запросов с последующей группировкой
4 ilya_i
 
18.01.12
19:10
объединение + группировка
5 BarakuzA
 
19.01.12
13:26
сделал объединение:
ВЫБРАТЬ
   СписаниеТоваров.Ссылка.Склад КАК Склад,
   СписаниеТоваров.Номенклатура КАК Номенклатура,
   СписаниеТоваров.Количество   КАК КоличествоСписание,
   СписаниеТоваров.Сумма        КАК СуммаСписание,
   0                            КАК КоличествоОприходование,
   0                            КАК СуммаОприходование
ИЗ
   Документ.СписаниеТоваров.Товары КАК СписаниеТоваров
ГДЕ
   СписаниеТоваров.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
   И СписаниеТоваров.Ссылка.ИнвентаризацияТоваровНаСкладе <> ЗНАЧЕНИЕ(Документ.ИнвентаризацияТоваровНаСкладе.ПустаяСсылка)
   И СписаниеТоваров.Ссылка.Склад В (&ПарСклад)
   И СписаниеТоваров.Номенклатура.Родитель В (&ПарРодитель)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   ОприходованиеТоваров.Ссылка.Склад   КАК Склад,
   ОприходованиеТоваров.Номенклатура   КАК Номенклатура,
   0                                   КАК КоличествоСписание,
   0                                   КАК СуммаСписание,
   ОприходованиеТоваров.Количество     КАК КоличествоОприходование,
   ОприходованиеТоваров.Сумма          КАК СуммаОприходование


ИЗ
   Документ.ОприходованиеТоваров.Товары КАК ОприходованиеТоваров
ГДЕ
   ОприходованиеТоваров.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
   И ОприходованиеТоваров.Ссылка.ИнвентаризацияТоваровНаСкладе <> ЗНАЧЕНИЕ(Документ.ИнвентаризацияТоваровНаСкладе.ПустаяСсылка)
   И ОприходованиеТоваров.Ссылка.Склад В (&ПарСклад)
   И ОприходованиеТоваров.Номенклатура.Родитель В (&ПарРодитель)

с группировкой проблемы...
6 BarakuzA
 
19.01.12
13:33
СГРУППИРОВАТЬ ПО
   ИнвентаризацияТоваров.Склад,
   ИнвентаризацияТоваров.Номенклатура    
прописываю вот так...
7 viktor_vv
 
19.01.12
13:36
Так сверху еще select наверни с Сумма() и группируй.
8 BarakuzA
 
19.01.12
14:40
Всем спасибо за помощь!!!